linux无密码登录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,直接复制即可。


所以步骤仍是两个:

  1. ssh-keygen -t rsa  -N  “” –f  /root/.ssh/id_rsa

  2. 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无密码登录的主要内容,如果未能解决你的问题,请参考以下文章

Linux SSH实现无密码远程登录

linux下怎样设置ssh无密码登录

SSH无密码登录:只需两个简单步骤 (Linux)

ssh 无密码登陆

Linux之ssh无密码登录

linux ssh scp无密码登录