为了自动化 ssh 连接,我使用 expect 编写了一个脚本,效果很好。但是,我想在 nautilus 连接到服务器功能中使用此脚本。我的想法是以某种方式将此 expect 脚本包含到 .ssh/config 文件中,因为 nautilus 能够使用那里详述的连接,但我不知道如何操作。不幸的是,我无法将 RSA 密钥复制到服务器。这是一个多跳连接,我无法写入第一个服务器。第一个服务器只要求输入密码和我可以连接的机器。因此,密码并不是真正的问题,因为它也可以由 nautilus 提供。任何帮助都值得感激,谢谢!
答案1
您不能在 中使用密码ssh_config
。但您可以使用端口转发(如果跳转箱允许):
SSHPASS=password sshpass -e ssh -L 2222:remotehost:22 user@jumpbox
进而
ssh -p 2222 localhost
将直接带您进入远程主机。您可以将其放入您的 中ssh_config
,例如:
Host remote-forwarded
Hostname localhost
Port 2222
然后连接如
ssh remote-forwarded
类似地,它将在 Nautilus 中工作。
Jumpbox 上禁止端口转发
在这种情况下,它会变得更加复杂。您将需要使用代理命令直接从远程主机设置端口转发。您的配置将更长:
Host remote-forwarded
Hostname localhost
Port 2222
Host jumpbox
Hostname jumpbox-host
Host remote
Hostname remote-host
ProxyCommand ssh -W %h:%p jumpbox
LocalForward 2222 localhost:22
否则它应该以同样的方式工作,首先
SSHPASS=password sshpass -e ssh remote
然后直接发送到另一台主机:
ssh remote-forwarded