Linux主机之间 使用 SSH 免密登录

        首先看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):      

       1.  在 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 [email protected]:/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 里, 进入 /home/SB 目录(以 SB 这个用户的身份), 同样的过程, 为 SB 用户生成 SSHKey

            并进入 .ssh 目录下

            

        5. 将 SSH-A 的公钥添加到 SB 用户 .ssh 目录下的 authorized_keys 文件中, 若 authorized_keys 不存在, 则手动创建一                个,注意:authorized_keys 的权限必须为 -rw------,即只有SB这个用户可读可写, 其他无任何权

              可通过 chmod 600 authorized_keys 修改权限

           

        6. 测试登录, 登陆成功, 大功告成

            ssh [email protected]    表示使用 SB 这个用户 登录 192.168.198.13 主机

                

     

追求完美: 

1.  远程登录到别的主机后怎么 回到原来的主机

     从主机SSH-A 登录到 SSH-B主机: ssh [email protected]

    回到原来的主机: ssh [email protected]

    问题: 登录回源主机时需要输入 SA 的用户密码, 因为我们没有将 用户 SA 的 public key 添加到 用户SA 的             

                authorized_keys 文件中, 只需要在用户SA 的authorized_keys 文件中添加 SA 自己 的公钥, 即可免密切换回源主                 机主机

2.  执行 ssh [email protected] 远程登录时发现还需要输入密码

     (1).  检查文件名是否错误, 必须为 authorized_keys

     (2).  检查authorized_keys的权限是否为-rw------

     (3). 若(1), (2)都没问题, 则给 SB 用户添加超级用户权限

            方法:打开 /ect/sudoers 文件, 找到 root      ALL=(ALL)       ALL行,

                                        在这行下面添加一行 SB      ALL=(ALL)       ALL 即可

猜你喜欢

转载自blog.csdn.net/zcf980/article/details/83118287