大家好,又见面了,我是你们的朋友全%ignore_a_1%君。
首先来看一下SSH免密登录的简易原理图:当主机A希望通过SSH免密登录主机B时,需要将主机A的SSH公钥复制到主机B的授权列表文件中。当A尝试登录B时,B会检查自己的授权列表文件,如果找到A的公钥,并经过一系列验证后,即可实现登录。
首先准备两台主机,分别命名为SSH-A和SSH-B(注意:这两台主机必须能够互相ping通)。
我的SSH-A主机的IP地址是:192.168.198.12,
SSH-B主机的IP地址是:192.168.198.13,
!!!!请注意,SSH Key是针对主机中某个特定用户的,每个用户的SSH Key都是唯一的。
开始(主机SSH-A免密登录主机SSH-B):
在SSH-A上为用户SA生成SSH Key
在SA用户下执行以下命令:ssh-keygen -t rsa
在出现的“Enter passphrase(empty for no passphrase)”和“The key fingerprint is”提示时,直接按回车键,使用默认设置。
2. 默认生成的.ssh目录位于用户的主目录下(我的用户主目录是/home/SA),进入.ssh目录。
进入用户主目录,由于.ssh是一个隐藏目录,需要使用ls -all命令才能看到。
3. 将.ssh目录下的id_rsa.pub文件远程复制到SSH-B主机上(使用远程复制命令scp)
执行命令:scp id_rsa.pub SB@192.168.198.13:/home/SB
此命令的含义是从本机将id_rsa.pub文件以SB用户的身份复制到192.168.198.13(SSH-B)主机的/home/SB目录下,SB是SSH-B主机上的一个用户,/home/SB是SSH-B的主目录。执行此命令时,需要输入SB用户的密码。
4. 在SSH-B主机上,以SB用户身份进入/home/SB目录,同样为SB用户生成SSH Key。
然后进入.ssh目录。
5. 将SSH-A的公钥添加到SB用户的.ssh目录下的authorized_keys文件中。如果authorized_keys文件不存在,则手动创建一个。注意:authorized_keys文件的权限必须设置为-rw——-,即只有SB用户有读写权限,其他用户没有任何权限。
可以通过chmod 600 authorized_keys命令来修改权限。
6. 测试登录,如果登录成功,则大功告成。
使用命令ssh SB@192.168.198.13表示以SB用户身份登录192.168.198.13主机。
追求完美:
如何在远程登录到其他主机后返回到原主机?
从主机SSH-A登录到SSH-B主机:ssh SB@192.168.198.13
返回到原主机:ssh SA@192.168.198.12
问题:在登录回源主机时需要输入SA的用户密码,因为我们没有将用户SA的公钥添加到用户SA的authorized_keys文件中。只需将SA自己的公钥添加到用户SA的authorized_keys文件中,即可实现免密切换回源主机。
在执行ssh SB@192.168.198.13远程登录时发现仍然需要输入密码
(1). 检查文件名是否正确,必须为authorized_keys。
(2). 检查authorized_keys的权限是否为-rw——-。
(3). 如果(1)和(2)都没有问题,则为SB用户添加超级用户权限。
方法:打开/ect/sudoers文件,找到root ALL=(ALL) ALL行,在此行下添加一行SB ALL=(ALL) ALL即可。
发布者:全栈程序员栈长,转载请注明出处:https://www.php.cn/link/ceacaf9856f429dadabb36e45a45c7e2
以上就是Linux主机之间 使用 SSH 免密登录「建议收藏」的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/16794.html
微信扫一扫
支付宝扫一扫