ssh无密码登录

    开门见山。

    有时候我们用ssh远程登录主机的时候又要输入yes,然后再输入一个远程主机的密码。 作为一个Linux系统管理者,这样做就太low了。现在我分享一下如何直接用ssh + ip 就可以登录远程主机。


    思路就是在本地主机,生成一个公钥和秘钥,然后把公钥拷贝到远程主机,就可以了。

具体操作:

    1、首先利用一个命令: ssh-keygen 来生成一个公钥和秘钥: ssh-keygen -t rsa 然后回车三次,命令结束后,在家目录下面有一个目录: .ssh。进入这个目录会看到有两个文件:id_rsa 和 id_rsa.pub 由名字就可以知道,id_rsa.pub是公钥,另一个是私钥,私钥留在本机,公钥复制到远程主机。

    2、登录远程主机,在远程主机的家目录下建立一个目录:.ssh。 然后把本地主机刚刚生成的那个id_rsa.pub文件复制到远程主机,具体命令是: scp ~/.ssh/id_rsa.pub root@远程主机IP:~/.ssh/

这时候由于远程主机没有公钥,所以需要输入密码,输入密码,复制完成。

    3、在远程主机上,进入.ssh目录,可以看到有一个id_rsa.pub文件,复制一个内容和id_rsa.pub这个文件一模一样的,文件名为authorized_keys的文件,例如:cat id_rsa.pub authorized_keys

再把authorized_keys的权限改为600。chmod 600 authorized_keys


    操作到此,大功告成。

    在本地输入 ssh + 远程主机的ip  无需密码就可以登录。


备注:

    其中的rsa是一个rsa算法,生成密钥的算法,还有一个算法是dsa,dsa对应的文件名为id_dsa和id_dsa.pub。只是算法不同,其它的操作是一样的。

    或许我们还注意到.ssh目录下还有一个文件是自动生成的:known_hosts 这个文件是记录机器指纹的,可以删了,删除之后下次登录还会自动生成。


    如果能保护好私钥的话,这种方式要比shell上输入密码更安全些。


    可以吧公钥理解为一把锁,私钥理解为钥匙,远程登录就等于拿着钥匙开锁。


你可能感兴趣的:(ssh,无密码登录)