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

我需要在远程计算机上上传和编译东西,而这个远程计算机只能在通过SSH访问的特定networking中访问。

所以例如我执行以下步骤:

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

有没有办法使我的本地机器知道隧道,而不会经历每次连接到网关的麻烦?

您可以configuration.ssh/configtargetmachine自动提供隧道。 为此无密码工作,虽然你需要在网关中设置公钥authentication,在网关代理转发。

设置它,以便通过network_gateway代理连接到targetmachine

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

然后你可以发出:

 $ ssh targetmachine 

直接连接。 有更多的信息在ssh_config(5) manpage中。

SSH将会在远程机器上执行一个命令。 例如,要通过server1连接到server2,请执行以下操作:

 ssh alice@server1 "ssh bob@server2" 

然后你将能够input命令到server2的提示符。

如果你想变得更加奇特,你可以把它们嵌套在一起:

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

你可以使用像ssh-chain这样的脚本来让你的生活更轻松。

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