ssh config如何配置用host名替代root@1.1.1.1,以及如何配置通过跳板机登录?(~/.ssh/config、ProxyCommand、nc、免密配置)
懂的都懂,就不写前言后序了。作为一个简单记录。
·
懂的都懂,就不写前言后序了。作为一个简单记录
1. 用host名替代繁琐的root@1.1.1.1
1.1 要点
- 场景:需要ssh root@1.1.1.1
- 常规用法: ssh root@1.1.1.1
- 配置后用法: ssh server1
- 配置方式:打开 ~/.ssh/config
Host ser1
HostName 192.168.101.81
User root
1.2 实操:
修改:
简化登录方式:
当然为了免密登录更方便,需要配置一下ssh公钥,本文就详细介绍操作方式与原理了。
2. 对于需要跳板机才能登录的场景如何使用ssh一步登录?
2.1 要点
- 需要跳板机配置特定端口进行登录,比如22233(本质是sshd启动了一个accept的端口处理请求,这里很好体现了网络分层架构中port作为业务主体的特点)
- 在~/.ssh/config中配置跳板机的快速登录方式,同时配置实际机器的登录方式
- 实际机器的登录方式需要加一个ProxyCommand,然后使用nc命令进行跳转
Host jump1
HostName 192.168.101.90
Port 22233
User root
Host bm3
HostName 192.168.101.91
ProxyCommand ssh jump1 nc %h %p
User root
实操:
配置效果:
登录效果:
因为实际跳板机环境,下图展示的跳板机使用了11,并未使用前面的90服务器。不过不影响。主要关注流程。
然后可以使用ssh -v查看详细过程:
可以看到有via proxy的信息
综述
- 从sshd设计者角度来看问题,核心就是透传ssh报文,中间如果有代理,原理也是先需要从serverA能够通过ssh访问serverB(这里只需满足基本的ssh配置),然后从serverB登录到serverC(这里也只需满足基本的ssh配置和鉴权),只是需要多一个在serverB的proxy命令,表示要到serverC认真
- 值得注意的是,需要添加多个ssh公钥以支持每次都免密登录,配置的方式是,把serverA的pubkey存到serverB的authorized_keys已支持A免密登录B,B登录C同理也需要配置一下,方可从serverA免密登录到serverB
- 按照上面的这种配置模式,哪怕有100个跳板机,也能用一条命令登录,一直穿透过去。这才是它真正的魅力和通透感。
- 另外简单提一句配置pubkey的方式:2步骤,以A登录B为例,A使用ssh-keygen生成公钥到~/.ssh/id_pub.key,把公钥dump出来存到B的~/.ssh/authorized_keys中。注意公钥名字根据具体配置使用。
- 本文讲述的方式是一种工程场景非常常用的提效方法,使用灵活后犹如一把剑,便可仗剑走天涯。
更多推荐
已为社区贡献2条内容
所有评论(0)