说,我~/.ssh/config有几行:
Host machine1
User user
HostName machine1
ProxyCommand ssh server nc %h %p 2> /dev/null
Run Code Online (Sandbox Code Playgroud)
这工作正常,但问题是我有很多machines:machine1, machine2, machine3, ...那么如何在不手动复制相同类型的行的情况下设置所有这些行
所以我对 bash 了解不多,需要一些专业人士的帮助。我正在尝试运行这样的脚本:
filename='file1'
while read p; do
ssh -p 2222 $p 'who -b' | awk '{print $(NF-1)" "$NF}' >> file2*
Run Code Online (Sandbox Code Playgroud)
我想要制作的是一个脚本,它遍历文件 1 中的所有地址,以查看它们上次重新启动的时间,然后是文件 2 中的答案。
问题是它只通过第一个地址而不是另一个。
第一个地址有一个密码,我需要输入才能继续该过程。这可能是问题,还是我指定了 file1 中的每一行,还是我一开始就做错了?
我有一种情况,我们的 Ubuntu 服务器部署在多个远程位置。这些服务器位于运营商级 NAT 和内部 NAT 之后。现在我想从一个中心位置随时访问它,但我也支持类似于这些服务器的 NAT。
当这些服务器在线时,我想访问它(通过 SSH 或 SSH 隧道)。我知道我无法访问具有公共 IP 的服务器,但也许我可以通过 TeamViewer 的工作原理以某种方式访问它。对于这种方法,如果我需要另一台公共服务器,我可以在 Google Compute Engine 中管理它。
所以,我正在设置一个 ssh 服务器。我已经在我的服务器上安装了 ssh-server 程序。但是,我不想通过端口22连接它,因为原因,所以我将服务器设置为通过另一个端口(2584)进行侦听。我如何设置我的客户端也通过端口 2584 而不是端口 22 连接?