LinuxSSH免密码登录本篇文章,我们一起来看看Linux免密码登录的原理和实战操作。什么是LinuxSSH免密码登录?想必大家应该都听过或者操作过吧但是,免密登录的整个过程你真的了解吗?LinuxSSH免密码登录是指无需输入密码即可通过SSH远程连接服务器。1、SSH免密码登录的原理通过上图大致可以分为以下几个步骤。B免密登录B在A上生成公私钥,将公钥复制到服务器B,重命名为authorized_keys(看英文名字就知道意思)。服务器A向服务器B发送连接请求,请求中包含A的用户名和IP。ServerB获取到ServerA的信息后,在authorized_key中查找,如果有对应的用户名和IP,则随机生成一个字符串,用ServerA的公钥加密后发送给ServerA。收到后服务器B发来的消息,服务器A使用私钥解密,然后将解密后的字符串发送给服务器B,服务器B与生成的字符串进行比较,如果一致则不允许登录。2、SSH免密码登录实验假设我有一台服务器,ip为139.198.189.160,我想通过本机免密码登录本机2.1生成公钥和私钥-f指定文件-t类型-C指定mailboxssh-keygen-trsa-f~/.ssh/id_rsa_test-C"zhangqiang@163.com"可以看到已经生成了公钥id_rsa_test.pub和私钥id_rsa_test2.2。Copythepublickeytotheserver~/.ssh/authorized_keys可以追加到~/.ssh/authorized_keys文件的最后面ssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAABgQD5jfom6Qts6tjpOAZwde2tWK9/MrKqCKgOd4Y/YILVD4nnvhs2X15N0VyWyZrVrqrUpyG7l3jEspbQxJHNJ9k80NbJqW5EyRernXCpoFICmUnfJnu3VYyBxyKxa1wa7/1xNKq3EEdVGmR2rcajVljfyo4ErPP6NrTbxCa0Do9mmXh2XiEdvrTogSud1c1c/+d7WOwiosD++y9ZxErwZkqBvxfimMTjfsrxTvZ8CIdhAS2THZeuVtFgpxS3TVdt1oXw/BOYsE8kjgZCZ/g0Sbm7w4ZHhKqvO+3q3tSarZyUnkEpeHLWztoH7GUaDjJrqrImlwubt9dzhlV446uefYXxq7WBVKbrGkhSkGN6pKp5xnSkQw0zGAPzieSslvd+0LLPGJ0uIqSq9h5TVGDMVcN2NmASBPB/e4jYzUBTr6hvhvRWPq7HoGSBUoeLYtQiNjUxc8SVSBkofJEoydsTzwlP8/yqBp4mGqyZgSRoBRALflXpCkNBa1HNiRujazxFsSU=zhangqiang@163.com2。3此时测试登录,发现还是需要我们输入密码。为什么?因为此时你的私钥还没有被ssh-add添加到缓存中2.4ssh-addprivatekeyssh-add命令就是添加私钥进入ssh-agent的缓存,注意私钥的权限必须是600,否则会报错。可以通过chmod600~/.ssh/id_rsa_test改成2.5,再次测试登录,可以看到免密码登录成功了。总结本文主要讲解学习了LinuxSSH免密码登录的原理,并实际操作了一下。注意本地私钥的权限必须是600,否则会报错,无法ssh-add到缓存中。欢迎大家访问我的个人博客Johnnyhut