如何设置 nautilus 来使用由 expect 脚本建立的 ssh 连接?

如何设置 nautilus 来使用由 expect 脚本建立的 ssh 连接?

为了自动化 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

相关内容