通过跳板机管理多个ssh会话

通过跳板机管理多个ssh会话

为了加强服务器的安全性,一般情况下,服务器的登陆管理都通过跳板机(或堡垒机)进行管理和维护,内网的之间的ssh并不对外开放.

Alt text

通常情况下,我们如果需要登陆到内部的服务器要先登陆到跳板机,然后再由跳板机连接到内网去进行进一步操作. 这样操作下来对于运维人员来说非常不便.是否有更好的方法来实现本地和内网服务器之间的访问呢?

答案是肯定有的

通过命令行一键连接内网服务器

ssh -i 秘钥 内网用户@内网地址 -p 内网端口 -o ProxyCommand='ssh 跳板机用户@跳板机地址 -p 跳板机端口 -W %h:%p'

通过ssh配置文件一键连接内网服务器

当然我们还可以通过ssh配置文件来实现一键连接,主要通过/etc/ssh/ssh_config 或者~/.ssh/config,我这边采用的是~/.ssh/config

Host server1
    HostName 192.168.1.4
    User test
    Port 22
    AddKeysToAgent yes
    PreferredAuthentications publickey  
    IdentityFile ~/.ssh/test/.ssh/id_rsa
    ProxyCommand ssh tiaobanji@8.8.4.4 -p 12356 -W %h:%p 

Host 10.*.*.*
    Port 22
    User test
    AddKeysToAgent yes
    UseKeychain yes
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/test/.ssh/id_rsa
    ProxyCommand ssh tiaobanji@8.8.4.4 -p 12356 -W %h:%p 

执行ssh server1则可以直接连接内网192.168.1.4
同时还支持配置通配符,如上 10网段的主机可以直接通过跳板机连接, 比如执行ssh 10.0.0.1,则会自动通过跳板机连接到内部网络.