据我了解,防火墙(假设默认设置)拒绝所有没有先前对应的传出流量的传入流量。
基于Reversing an ssh connection和SSH Tunneling Made Easy,反向 SSH 隧道可用于绕过烦人的防火墙限制。
我想在远程机器上执行 shell 命令。远程机器有自己的防火墙,并在附加防火墙(路由器)后面。它有一个像 192.168.1.126(或类似的东西)这样的 IP 地址。我不在防火墙后面,我知道从 Internet 上看到的远程机器的 IP 地址(不是 192.168.1.126 地址)。此外,我可以要求某人ssh (something)首先在远程机器上以 root身份执行。
谁能一步一步地向我解释反向 SSH 隧道如何绕过防火墙(本地和远程机器的防火墙以及它们之间的附加防火墙)?
开关 ( -R, -f, -L, -N)的作用是什么?
在尝试通过 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)
我该如何解决这个问题?
来自 Windows 管理,我想更深入地研究 Linux (Debian)。我在网上搜索(没有找到)时无法回答的一个紧迫问题是:如何像在 Windows PowerShell 中那样实现所谓的“一对多”远程处理?
为了将其分解为基础知识,我会说:
我对 Linux 的看法:
我在 Windows 上的经验:
我输入我的命令并使用“invoke-command”我可以将其“发送”到一堆服务器(可能来自文本文件)以同时执行并返回结果(作为进一步工作的对象)。
我什至可以建立多个会话,连接在后台保持,并有选择地向这些会话发送命令,并根据需要远程进出。
(我听说过厨师、木偶等。是这样的吗?)
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"'
我有一个 Godaddy 专用服务器,我想取消它。在我这样做之前,我想在服务器上做一个干净的格式,以确保下一个获得服务器的人无法取消删除任何东西(我不知道 Godaddy 在重新格式化之前有多彻底将磁盘交给其他人。)
我当然没有对机器的物理访问权限,所以无论我做什么我都必须通过 ssh 来做。我真的不确定我能做什么。
除了我们的内部 IT 基础设施,我们还有大约 500 台 Linux 机器托管我们为在线世界提供的服务。它们被分组在一堆集群中,如数据库 An、产品 An、NFS、Backoffice 等。此外,它们由外部供应商根据我们的规范和要求进行管理。
然而,我们在(网络)软件开发、推出和部署过程中面临很多麻烦——特别是因为开发和登台环境与实时系统几乎没有任何共同之处(我省略了讨厌的细节......) .
因此,我尝试创建虚拟机,尽可能精确地复制各种实时系统,并准备将它们连接到例如开发数据库而不是对开发人员透明的“真实”数据库(它们不是root)。这很好用,但是...
我想知道如何远程批量管理这些系统?是否有一些我不知道的软件系列?或者,至少,一些应该熟悉的技术或原则?
我们将为每个开发人员提供一堆本地运行的图像(VirtualBox)。质量保证部 将获得虚拟集群(XEN 或 Hyper-V)。如果我需要提供一个额外的服务器模块,重新路由一个新的数据库连接,或者只是想更新包管理器提供的所有内容......我怎么可能在不被强制登录到每个系统和/或请我的同事下载并运行一些夹具脚本?
我相信有很多解决方案。嗯,不知何故,我太愚蠢了,无法在搜索引擎中输入正确的关键字……或者这个问题是不是像听起来一样微不足道?
作为记录:
如果这应该转移到 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)
我尝试了一些变体,但一无所获。
我很亲近吗?我应该做一些完全不同的事情吗?我是在重新发明轮子吗?
考虑一个像这样的无头服务器:一个典型的远程位置的 x86 机器,你可以用一个股票 - 例如 - Ubuntu 映像远程初始化。初始化后,您只能通过 ssh 登录 - 或远程重置它,即您无法访问 BIOS 或引导管理器提示(例如 Grub 1)。
也许某种KVM可用,但KVM的使用非常昂贵,您必须按小时预订。
在这种情况下,人们可能会对启动问题产生偏执。例如:
还有其他需要注意的问题吗?
对于内核升级,我配置了 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 …
在一个教室里有 15 台机器 + 1 台老师的 PC。都有例如:Ubuntu 10.04 LTS。
有没有什么软件可以用在教师机上,可以“审核”学生15台电脑?需要的东西:
- 老师必须从他的电脑上看到学生的“显示”。
- 教师可以向所有其他学生或他自己的显示器显示 1 个学生的“显示”。
- 额外:教师可以远程“控制”学生机器(例如:向学生展示给定练习的最佳解决方案)
是否可以通过 VPN 连接路由计算机的 SSH 服务,但允许所有其他数据通过 WAN 地址退出?需要使用什么样的 iptables 魔法来实现这一点?
SSH 数据 → 通过 VPN
所有其他数据 → 通过默认路由
是否有 TeamViewer 的开源替代品?问题是让远程放置的设备启动连接,以便帮助台可以管理设备。
我希望在我们部署的设备上创建一个远程管理工具,这些设备位于防火墙之后)。
我知道 SSH 协议支持 X11 转发,但是如果我要在防火墙后面部署 10 多个设备,我将如何连接到正确的设备来管理它?