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上保存私钥

 

posted @ 2018-03-30 16:59  SpeicalLife  阅读(273)  评论(0编辑  收藏  举报