通过 SSH 快速 SSH 进入另一个盒子

通过 SSH 快速 SSH 进入另一个盒子

我需要在只能在特定网络内通过 SSH 访问的远程机器上上传和编译内容。

例如我执行以下步骤:

me@mymachine$ ssh user@network_gateway
user@network_gateway$ ssh seconduser@targetmachine
seconduser@targetmachine$ #do stuff

有没有办法让我的本地机器知道隧道,而不必每次都经历连接网络网关的麻烦?

答案1

您可以配置您的.ssh/config以自动为 提供隧道targetmachine。但是,为了实现无密码工作,您需要在主机和网关中的代理转发中设置公钥身份验证。

设置它以便targetmachine通过以下方式代理连接network_gateway

Host targetmachine
  HostName targetmachine.company.com
  ProxyCommand ssh network_gateway -W %h:%p

然后你可以发出:

$ ssh targetmachine

直接连接。手册页中有更多信息ssh_config(5)

答案2

SSH 将接受要在远程计算机上执行的命令。例如,要通过 server1 通过 SSH 进入 server2:

ssh alice@server1 "ssh bob@server2"

然后您将能够在 server2 的提示符中输入命令。

如果你想要更加花哨,你可以嵌套它们:

ssh alice@server1 "ssh bob@server2 \"cd myproject && git pull origin master && make all\""

答案3

你可以使用类似脚本ssh-链让您的生活更加轻松。

但不知道它是否支持 sftp 传输。

相关内容