ssh日常优化使用
config文件的使用
ssh命令默认会加载 ~/.ssh/config 文件作为配置文件,如果没有则采用默认配置。如果我们想要对ssh进行定制,那么就可以使用如下方法
[root@linux-node2 .ssh]# pwd /root/.ssh [root@linux-node2 .ssh]# cat config Host host2 StrictHostKeyChecking no HostName 10.10.206.145 Port 5821 ForwardAgent yes User root Controlpath ~/.ssh/ssh-%r@%h:%p.sock
Host * # 通配符的方式定义了ssh连接时的默认用户名和端口 StrictHostKeyChecking no HostName %h Port 1234 User root Controlpath ~/.ssh/ssh-%r@%h:%p.sock
[root@linux-node2 .ssh]#
这样再次连接10.10.206.145时,只需要使用 ssh host2 即可。
ssh-agent管理密钥
一般在生产上,我们使用ssh的密钥进行登陆,有时会对密钥进行加密,那么每次连接时都需要输入密码,非常麻烦,openssh提供了ssh-agent用来管理密钥
(如果我们有多台远程服务器与多个私钥文件,使用ssh-agent可以使我们不用在每次登陆时使用-i参数指定私钥文件,ssh-agent会尝试使用不同的私钥文件,直至成功)
# 启动ssh-agent ssh-agent # 添加私钥交给ssh-agent管理 ssh-add ~/.ssh/id_rsa # 列出ssh-agent管理的密钥 ssh-add -L # 注意 1、使用ssh-add失败,提示Could not open a connection to your authentication agent. 执行:ssh-agent bash 再试
还有一种情况下比如,主机A需要通过主机B才能访问主机C的情况下,我们可能需要在B上保存私钥才可以,但是如果使用ssh-agent的agent forwarding功能后,就可以使用主机A登陆B和C了,而不用在B上保存私钥
所有巧合的是要么是上天注定要么是一个人偷偷的在努力。