标签:linux基础
关于这个小操作,纠结了很久,刚开始就是两步走:
ssh-keygen -t rsa 三次回车生成密钥对
ssh-copy-id -i /root/.ssh/id_rsa.pub 1.1.1.1 回传公钥到需要ssh的服务器
后来发现了ssh-key -N "" -f /root/.ssh/id_rsa这个命令,可以跳过回车,直接生成,如获至宝。
再后来,发现ssh-copy-id也麻烦,发现了cat /root/.ssh/id_rsa.pub > /root/.ssh/authorized_keys这个小技巧,但是思维定式,一直通过cat来生成自动认证文件authorized_keys。
最后的终结版:cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys,直接复制即可。
所以步骤仍是两个:
ssh-keygen -t rsa -N “” –f /root/.ssh/id_rsa
cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
需要注意的是,由于目前通常工作中的需求是,服务器集群所有节点互信,所以做完这两个操作之后,再ssh登录所有节点,生成known_hosts文件,然后把整个/root/.ssh 目录scp到所有节点,即可所有节点之间互信,如果authorized_keys文件存储有其他公钥,则不能直接copy生成,还是需要通过
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys 来追加到之前的密钥之后,避免覆盖掉之前的公钥。
具体/root/.ssh/目录下的文件作用如下
authorized_keys 用于跟远端Client的私钥比对的公钥,放在需要ssh的server端
id_rsa 用于跟server端的公钥比对的私钥,放在Client端
known_hosts 用于存储已经ssh过的主机的指纹信息,如果指纹信息和主机名或主机IP地址对应出错,则会有告警提示甚至无法ssh
id_rsa.pub 生成密钥对的原始公钥文件,在生成authorized_keys之后,这个文件就可以删掉了
另外,id_rsa为固定名称,更改会导致无密码ssh失败。
本文出自 “8450152” 博客,请务必保留此出处http://8460152.blog.51cto.com/8450152/1967111
标签:linux基础
原文地址:http://8460152.blog.51cto.com/8450152/1967111