1、ProxyJump(推荐使用)
需要OpenSSH 7.3以上版本才可使用,可用下列命令查看:
ssh -V
ProxyJump命令行使用方法
ssh -J [email protected]:port1,[email protected]:port2
一层跳板机:
ssh dst_username@dst_ip -p dst_port -J jump_username@jump_ip:jump_port
多层跳板机用,隔开,顺序从左至右
ssh dst_username@dst_ip -p dst_port -J jump1_username@jump1_ip:jump1_port,jump2_username@jump2_ip:jump2_port
vscode中config配置
Host jumpHostName xxxUser xxxPort xxxHost jump1HostName xxxUser xxxPort xxxHost serverHostName xxxUser xxxPort xxxProxyJump jump,jump1
2、ProxyCommand
博客上大多的方法都是使用这种,但是本人亲测出现了诸多报错,包括重装了ssh还是有各种问题
openssh在7.3以下可使用此方法
proxycommand命令行使用方法
ssh username@目标机器IP -p 22 -o ProxyCommand='ssh -p 22 username@跳板机IP -W %h:%p'
Host JumpMachine# 跳板机的ip地址HostName A# 你跳板机的用户名User username# 跳板机登录端口 Port 22Host TargetMachine# 目标机的ip地址HostName B# 你目标机的用户名User username# 目标机登录端口 Port 22ProxyCommand "openssh的安装路径"\ssh.exe -W %h:%p JumpMachine
上图方法本人使用失败了,但是有的人可以成功,暂时不清楚原因,使用下图方法反而成功了
Host serverHostName xxxxUser xxxxPort xxxxProxyCommand C:/Windows/System32/OpenSSH/ssh.exe -p jump_port jump_username@jump_ip -W %h:%p
3、免密登录
1、在本地powershell中输入:
ssh-keygen
红色框里的路径即公钥保存的位置
2、以两层跳板机为例,先连接跳板机1,将本地生产的公钥复制到.ssh中的authorized_keys里
mkdir .ssh
mv id_rsa.pub .ssh
cd .ssh
cat id_rsa.pub >> authorized_keys
sudo chmod 600 authorized_keys
再重新登录服务器
3、在跳板机1里继续使用ssh-keygen把公钥以相同的方法加入到跳板机2的authorized_keys里,依此类推。