标签: remote-management

反向 SSH 隧道如何工作?

据我了解,防火墙(假设默认设置)拒绝所有没有先前对应的传出流量的传入流量。

基于Reversing an ssh connectionSSH Tunneling Made Easy,反向 SSH 隧道可用于绕过烦人的防火墙限制。

我想在远程机器上执行 shell 命令。远程机器有自己的防火墙,并在附加防火墙(路由器)后面。它有一个像 192.168.1.126(或类似的东西)这样的 IP 地址。我不在防火墙后面,我知道从 Internet 上看到的远程机器的 IP 地址(不是 192.168.1.126 地址)。此外,我可以要求某人ssh (something)首先在远程机器上以 root身份执行。

谁能一步一步地向我解释反向 SSH 隧道如何绕过防火墙(本地和远程机器的防火墙以及它们之间的附加防火墙)?

开关 ( -R, -f, -L, -N)的作用是什么?

networking ssh firewall remote-management ssh-tunneling

432
推荐指数
4
解决办法
30万
查看次数

为什么我从 xauth 收到此消息:“锁定权限文件 /home/<user>/.Xauthority 超时”?

在尝试通过 SSH 连接到主机时,我收到了以下消息xauth

/usr/bin/xauth: 锁定权限文件 /home/sam/.Xauthority 超时

注意:我试图通过 SSH 连接远程显示 X11 GUI,因此我需要xauth能够$HOME/.Xauthority成功创建文件,但正如该消息所指示的那样,显然不是。

尝试运行任何基于 X11 的应用程序,例如xeyes收到此消息:

$ xeyes
X11 connection rejected because of wrong authentication.
Error: Can't open display: localhost:10.0
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

remote-management x11 xauth

45
推荐指数
3
解决办法
15万
查看次数

Linux 相当于 PowerShell 的“一对多”远程处理

来自 Windows 管理,我想更深入地研究 Linux (Debian)。我在网上搜索(没有找到)时无法回答的一个紧迫问题是:如何像在 Windows PowerShell 中那样实现所谓的“一对多”远程处理?

为了将其分解为基础知识,我会说:

我对 Linux 的看法:

  • 我可以通过 ssh 进入服务器并输入我的命令
  • 我得到了结果。对于 10 个服务器的环境,我必须编写一个(perl/python?)脚本,为每个服务器发送命令?

我在 Windows 上的经验:

  1. 我输入我的命令并使用“invoke-command”我可以将其“发送”到一堆服务器(可能来自文本文件)以同时执行并返回结果(作为进一步工作的对象)。

  2. 我什至可以建立多个会话,连接在后台保持,并有选择地向这些会话发送命令,并根据需要远程进出。

(我听说过厨师、木偶等。是这样的吗?)


Update 2019:
在尝试了很多之后 - 我建议Rex(见下面的评论) - 简单的设置(实际上它只需要 ssh,没有别的)和使用(如果你知道一点点perl,它会更好,但它是可选的)
Rex(ify) )您可以执行adhoc命令并将其推进到真正的配置管理中(...意思是:它首先是一个 CM,但也适用于临时任务)网站接缝已过时,但目前(截至 01/2019)它正在积极开发中,IRC 频道也处于活跃状态。

有了 Windows 的新openssh,还有更多的可能性

你可以试试: rex -u user -p password -H 192.168.1.3 -e 'say run "hostname"'

linux ssh remote-management perl

39
推荐指数
4
解决办法
5261
查看次数

如何擦除我没有物理访问权限的服务器?

我有一个 Godaddy 专用服务器,我想取消它。在我这样做之前,我想在服务器上做一个干净的格式,以确保下一个获得服务器的人无法取消删除任何东西(我不知道 Godaddy 在重新格式化之前有多彻底将磁盘交给其他人。)

我当然没有对机器的物理访问权限,所以无论我做什么我都必须通过 ssh 来做。我真的不确定我能做什么。

storage security remote-management data-destruction

11
推荐指数
1
解决办法
4407
查看次数

Linux 批量/远程管理

除了我们的内部 IT 基础设施,我们还有大约 500 台 Linux 机器托管我们为在线世界提供的服务。它们被分组在一堆集群中,如数据库 An、产品 An、NFS、Backoffice 等。此外,它们由外部供应商根据我们的规范和要求进行管理。

然而,我们在(网络)软件开发、推出和部署过程中面临很多麻烦——特别是因为开发和登台环境与实时系统几乎没有任何共同之处(我省略了讨厌的细节......) .

因此,我尝试创建虚拟机,尽可能精确地复制各种实时系统,并准备将它们连接到例如开发数据库而不是对开发人员透明的“真实”数据库(它们不是root)。这很好用,但是...

我想知道如何远程批量管理这些系统?是否有一些我不知道的软件系列?或者,至少,一些应该熟悉的技术或原则?

我们将为每个开发人员提供一堆本地运行的图像(VirtualBox)。质量保证部 将获得虚拟集群(XEN 或 Hyper-V)。如果我需要提供一个额外的服务器模块,重新路由一个新的数据库连接,或者只是想更新包管理器提供的所有内容......我怎么可能在不被强制登录到每个系统和/或请我的同事下载并运行一些夹具脚本?

我相信有很多解决方案。嗯,不知何故,我太愚蠢了,无法在搜索引擎中输入正确的关键字……或者这个问题是不是像听起来一样微不足道?

作为记录:

  • 几乎所有系统都在运行 Debian GNU/Linux 6.x “squeeze”
  • 没有开发人员被迫在他/她的工作站上使用特定的操作系统
  • 预算有限,当然,但也不能太少买专有软件
  • 首选涉及我们上述提供商的解决方案

linux remote-management administration deployment

11
推荐指数
1
解决办法
6006
查看次数

执行远程sqlite命令

如果这应该转移到 DBA 交换,我深表歉意。对我来说,感觉更像是 linux 而不是 DB,所以这里是:

我有一些机器每晚运行预定的 cron 作业并将输出通过电子邮件发送给我。我不想要这样的电子邮件。总的来说,我认为我们使用电子邮件的方式是坏的,但那是另一回事了。

所以我开始考虑我可以保留一个中央 SQLite 数据库来存储有关作业何时开始和完成的信息,甚至可能是输出。然后我可以建立一个网页来查询,让我知道昨晚发生了什么。

所以我想出了一个简单的模式,可以在脚本的开头运行这个命令。

sqlite3 dbname.db "UPDATE data SET LastStart = DATETIME('NOW') WHERE TaskName = 'taskname'"
Run Code Online (Sandbox Code Playgroud)

所以现在我有一个记录,说明我的工作是在什么时候开始的。万岁。然后我可以运行一个类似的命令来放置作业结束的时间。

所以。如果数据库和任务在同一台机器上,那效果很好。我去另一台机器,需要更新sqlite数据库......我怎样才能有效地做到这一点?

我试过这个

ssh aaron@10.1.150.53 'sqlite3 /home/aaron/dbname.db "UPDATE data SET LastStart = DATETIME('NOW') WHERE TaskName = 'taskname'"'
Run Code Online (Sandbox Code Playgroud)

但这会返回:

Error: no such column: NOW
Run Code Online (Sandbox Code Playgroud)

我尝试了一些变体,但一无所获。

我很亲近吗?我应该做一些完全不同的事情吗?我是在重新发明轮子吗?

ssh remote-management sqlite

8
推荐指数
1
解决办法
1万
查看次数

如何设置用于无头使用的 linux 服务器?

考虑一个像这样的无头服务器:一个典型的远程位置的 x86 机器,你可以用一个股票 - 例如 - Ubuntu 映像远程初始化。初始化后,您只能通过 ssh 登录 - 或远程重置它,即您无法访问 BIOS 或引导管理器提示(例如 Grub 1)。

也许某种KVM可用,但KVM的使用非常昂贵,您必须按小时预订。

在这种情况下,人们可能会对启动问题产生偏执。例如:

  1. 如果内核升级失败怎么办?
  2. 早期启动过程中的 fsck-prompt 怎么样?可能,ssh 尚不可用...

还有其他需要注意的问题吗?

对于内核升级,我配置了 grub(旧版),以便menu.lst序言包含

default saved
fallback 2  # counts from 0
Run Code Online (Sandbox Code Playgroud)

第一个条目以:

savedefault fallback
Run Code Online (Sandbox Code Playgroud)

第一个 grub 条目是升级后的内核,第三个是已知的工作内核。另请参阅有关回退引导grub 手册部分

我更改了启动脚本/etc/rc.local(在类似 Debian 的系统上),以便在成功启动的情况下重置默认条目设置:

grub-set-default 0
Run Code Online (Sandbox Code Playgroud)

这个 grub-setup 有效,但例如在 Ubuntu 上,这不是默认设置,必须menu.lst在每次内核更新后手动调整。

我供应

panic=60
Run Code Online (Sandbox Code Playgroud)

作为内核参数,例如在错误root=参数或损坏内核的情况下,系统会在出现错误时自动重新启动。

关于 fsck 问题,我不确定最好的方法是什么。在类似 Debian 的系统上,您可以设置

FSCKFIX=yes
Run Code Online (Sandbox Code Playgroud)

in /etc/default/rcS,它告诉 fsck 默认情况下自动修复。

但是如果自动修复失败,也许我仍然会收到无法远程访问的提示?

或者,我可以通过第六列中的零禁用 fsck …

remote-management headless

7
推荐指数
1
解决办法
5124
查看次数

教室“监督”软件

在一个教室里有 15 台机器 + 1 台老师的 PC。都有例如:Ubuntu 10.04 LTS。

有没有什么软件可以用在教师机上,可以“审核”学生15台电脑?需要的东西:

- 老师必须从他的电脑上看到学生的“显示”。
- 教师可以向所有其他学生或他自己的显示器显示 1 个学生的“显示”。
- 额外:教师可以远程“控制”学生机器(例如:向学生展示给定练习的最佳解决方案)

vnc remote-management remote-desktop

7
推荐指数
1
解决办法
725
查看次数

通过 VPN 仅路由 ssh 流量

是否可以通过 VPN 连接路由计算机的 SSH 服务,但允许所有其他数据通过 WAN 地址退出?需要使用什么样的 iptables 魔法来实现这一点?

SSH 数据 → 通过 VPN
所有其他数据 → 通过默认路由

ssh routing remote-management vpn

7
推荐指数
1
解决办法
5388
查看次数

TeamViewer,开源替代品?(从远程设备创建的连接)

是否有 TeamViewer 的开源替代品?问题是让远程放置的设备启动连接,以便帮助台可以管理设备。

我希望在我们部署的设备上创建一个远程管理工具,这些设备位于防火墙之后)。

我知道 SSH 协议支持 X11 转发,但是如果我要在防火墙后面部署 10 多个设备,我将如何连接到正确的设备来管理它?

remote-management gui remote-desktop

7
推荐指数
1
解决办法
176
查看次数