SSH跳板机访问内网机器及其免密登录
由于项目部署的P4交换机与工位主机在同一内网内,且工位主机和本人笔记本通过tailscale虚拟组网功能可以相互访问,因此为了便于外网的笔记本可以随时SSH连接到内网的交换机设备,需要设置工位主机作为跳板机,完成本机 -> 跳板机 -> 内网交换机的SSH访问。
ProxyJump
需要OpenSSH版本高于7.3才能使用ProxyJump
,其使用方法如下:
1 |
|
其中target_username
和jump1_username
分别为目标主机和跳板机的ip地址,target_ip
和jump_ip
分别为目标主机和跳板机的ip地址或域名,target_port
和jump_port
分别为目标主机和跳板机的ssh服务器端口号,端口号22时可以默认省略。
当存在多个跳板时,可以通过在 -J
选项后以,
分割多个username@ip:port
来实现,即
1 |
|
存在多个跳板机时,访问顺序为local -> jump1 -> jump2 -> … -> server。
为了能够简化命令,可以通过在~/.ssh/config
中加入以下配置:
1 |
|
保存配置文件后,使用ssh target
即可完成连接。
ProxyCommand
OpenSSH版本低于7.3时,可以选择使用ProxyCommand
,其使用方法如下:
1 |
|
其中target_username
和jump_username
分别为目标主机和跳板机的ip地址,target_ip
和jump_ip
分别为目标主机和跳板机的ip地址或域名,target_port
和jump_port
分别为目标主机和跳板机的ssh服务器端口号,端口号22时可以默认省略。
为了能够简化命令,可以通过在~/.ssh/config
中加入以下配置:
1 |
|
保存配置文件后,使用ssh target
即可完成连接。
免密登录
将本机~/.ssh/
文件夹下的密钥对中的公钥(以.pub
)结尾分别上传添加到跳板机和目标主机的~/.ssh/authorized_keys
文件中,并且在本机配置文件~/.ssh/config
中,分别在jump
和target
的配置中加入密钥对中的私钥路径,若文件名为默认的id_rsa
可以不作修改。
1 |
|
如何生成密钥对可参考上一篇文章Windows&Linux SSH免密公钥登录。