假设你需要进入一个不能直达(由于不在互联网上,或其它原因)的节点,但你可以进入守护它前端的节点。 你不用每次都 ssh 进入该守护主机,然后再连接到第二个节点。ssh_config 内拥有为此而设、好用的 ProxyCommand 功能,而下面是 ~/.ssh/config 的样例:
Host bastion Hostname bastion.yourdomain.com ForwardAgent yes Host hidden Hostname IP.or.FQDN.known.by.bastion ProxyCommand ssh bastion -W %h:%p 2>/dev/null
现在你可以从你的手提计算机/工作站,利用 ssh 直接进入「隐藏」的机器,而无须依赖守护主机上的指令壳:
ssh hidden hostname hidden.yourdomain.com
这个方法亦能让 sftp/scp 直接复制至该节点。
样例
如要访问 CentOS CI 的机器,你需要在你的 .ssh/config 档内加入下列设置(并对该文件执行 chmod 600):
Host jump.ci Hostname jump.ci.centos.org User <your_ci_username> ProxyCommand none ForwardAgent yes GSSAPIAuthentication no Host *.ci.centos.org ProxyCommand ssh jump.ci -W %h:%p ForwardAgent yes GSSAPIAuthentication no
加入以下内容后,你便能以 ssh 进入你的项目帐户 'ssh <项目名称>@ci-slave01.ci.centos.org' 并在该机器上工作。
Translation of revision 6