为了安全起见,线上机器通常不会容许用户经过ssh直接登陆,而是须要经过堡垒机(跳板机)跳转到目标线上机器,这样方便对权限控制的管理和访问操做的审计。不知道公司用的是哪款堡垒机产品,选择目标机器的过程异常繁琐。查看ssh
的手册(manual)看到了-J
选项,能够经过该选项指定ProxyJump而后直接登陆到目标机器,命令以下:安全
ssh -J user@jump.tunzao.me:80 user2@a.tunzao.me
不过要scp文件到目标机器上就有点困难了(能够经过-o
选项指定ssh_option,可是还没弄明白怎么指定),并且每次登陆都输这么长一串字符串实在是难以忍受,减小敲击次数的一个方案是alias
,另外一个方案是编辑~/.ssh/config
文件配置ProxyJump,指定某些机器经过堡垒机登陆,格式以下:bash
### 堡垒机 Host jump HostName jump.tunzao.me Port 80 User user ### 目标机器,经过堡垒机登陆 Host a HostName a.tunzao.me ProxyJump jump
这样就能经过 ssh user2@a
登陆 a.tunzao.me
了,同时也能经过 scp afile.txt user2@a:~
拷贝文件到 a.tunzao.me
上。Host指令后的 jump
同时能够用做ssh的别名,若是要使用用户 user
登陆到 jump.tunzao.me
直接执行 ssh jump
便可。ssh
原文code