介绍
ssh 有三种方式可以跳转登录,分别是:ProxyJump、ProxyCommand、SSH Tunnel。
在某些场景下,SSH无法直接访问服务器,需要通过其他服务器进行代理访问,比如外网服务器访问仅允许使用VPN或4A访问的内网服务器。在这种场景下,常用的方式是端口转发,使用端口转发建立连接,然后再做访问。如果面临更多服务器,就需要建立多个端口转发连接,比较麻烦。
ProxyJump
可以使用SSH提供的ProxyJump参数,进行代理服务跳转,简化登录流程,ProxyJump简写参数是 -J 。
在 openssh7.3 以上的版本,开始支持 ProxyJump 。
ProxyJump可以在命令行执行,也可以写在配置文件(~/.ssh/config
)中。
命令行执行语法
|
|
使用命令行时需要逐个输入代理服务器的密码。
可以使用config配置文件和ssh密钥文件,简化登录流程,
配置文件(~/.ssh/config
)语法
|
|
配置之后,在终端执行 ssh target
即可ssh到目标服务器
ProxyCommand
若不支持ProxyJump,可以使用ProxyCommand
-W host:port #将client过来的标准输入和输出forward到host和port指定的地方. 可以看到,这个选项直接就可以搭配上ProxyCommand的需求
ProxyCommand 命令行语法
|
|
同样可以在~/.ssh/config
增加配置
|
|
参考:
https://qusec.cn/posts/sssh/
https://peirs.net/sshs-proxyjump-parameter/
https://murphypei.github.io/blog/2021/12/ssh-proxyjump
https://www.jianshu.com/p/199013854070
https://zhuanlan.zhihu.com/p/74193910
https://blog.csdn.net/wxqee/article/details/49234595
https://www.jianshu.com/p/ad5aa9663d37
https://juejin.cn/s/ssh%20config%20proxyjump%20windows