1、ProxyJump(推荐使用)
需要OpenSSH 7.3以上版本才可使用,可用下列命令查看:
1
|
ssh -V |
ProxyJump命令行使用方法
1
|
ssh -J [email protected]:port1,[email protected]:port2 |
一层跳板机:
1
|
ssh dst_username@dst_ip -p dst_port -J jump_username@jump_ip:jump_port |
多层跳板机用,隔开,顺序从左至右
1
|
ssh dst_username@dst_ip -p dst_port -J jump1_username@jump1_ip:jump1_port,jump2_username@jump2_ip:jump2_port |
vscode中config配置
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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命令行使用方法
1
|
ssh username@目标机器IP -p 22 -o ProxyCommand= 'ssh -p 22 username@跳板机IP -W %h:%p' |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
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 |
上图方法本人使用失败了,但是有的人可以成功,暂时不清楚原因,使用下图方法反而成功了
1
2
3
4
5
|
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里
1
2
3
4
5
6
|
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里,依此类推。