使用下面命令直接可登陆目标机器
ssh username@目标机器ip -p 22 -o ProxyCommand='ssh -p 22 username@跳板机ip -W %h:%p'
举例:
ssh tomcat@12.22.33.22 -p 22 -o ProxyCommand='ssh nginx@20.92.2.01 -p 22 -W %h:%p'
说明:
12.22.33.22
是目标机器20.92.2.01
是跳板机-o ProxyCommand
是openssh的高级功能,支持任何ssh命令-W %h;%p
: 跳板机与客户端之前的输入/输出,可以通过此命令转发到指定机器,h是主机名,p是端口号
如何上传文件到目标机器?
最笨的方法是先将文件上传到跳板机上,再从跳板机上传到目标机器上。
参考上面的例子,是不是可以考虑ProxyCommand
执行scp命令呢?
实际上是可以的,不过需要添加配置。
- 1.进入.ssh/目录,
cd ~/.ssh/
- 2.创建
config
文件,vim config
- 3.编辑config,如下,保存
# ~/.ssh/config 文件
# 目标机器
Host target1
HostName 12.22.33.22
User xxx
Port 22
ProxyJump test1
# 跳板机
Host test1
HostName 20.92.2.01
User xxx
Port 22
- 4.执行
scp ~/Downloads/image.png test1:/usr/share/nginx/html2
,将文件上传到目标机器
提示:
- 1.使用config文件配置,就不用使用
ProxyCommand
命令了 - 2.也支持ssh登陆机器,例如
ssh target1
参考文献: