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 jump
HostName xxx
User xxx
Port xxx
Host jump1
HostName xxx
User xxx
Port xxx
Host server
HostName xxx
User xxx
Port xxx
ProxyJump 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 22
Host TargetMachine
# 目标机的ip地址
HostName B
# 你目标机的用户名
User username
# 目标机登录端口
Port 22
ProxyCommand "openssh的安装路径"\ssh.exe -W %h:%p JumpMachine
上图方法本人使用失败了,但是有的人可以成功,暂时不清楚原因,使用下图方法反而成功了
Host server
HostName xxxx
User xxxx
Port xxxx
ProxyCommand 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里,依此类推。