美文网首页
SSH 实现免密登录

SSH 实现免密登录

作者: 弄浪的鱼1 | 来源:发表于2017-11-05 10:31 被阅读144次
    linux.jpg

    本文介绍如何通过 SSH 实现免密登录。

    工作环境:

    1. 本机 macOS 10.12.6
    2. 虚拟机工具 Paralles
    3. Liunx :centos 7 mini (注意:6 和 7 的配置有区别)

    SSH 协议是什么

    SSH 是一种网络协议,用于计算机之间的加密登录。SSH是英文Secure Shell的简写形式。

    通过使用SSH,你可以把所有传输的数据进行加密更加安全可靠。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH 有很多功能,它既可以代替 Telnet,又可以为FTP、Pop、甚至为 PPP 提供一个安全的"通道"。

    SSH 协议更多内容看最后附的链接,有兴趣的朋友可以了解一下。

    配置主机间的免密登录

    配置免密登录

    什么是免密登录呢?

    通常我们登录 SSH 是通过账号和免密来登录的,输入ssh username@ip-server然后输入密码。

    如果每次都输入密码会很麻烦,而且要对多台主机进行自动化管理,每次都要输入密码不现实。我们可以配置公钥和密钥进行免密登录。免密登录做的事情其实就是通过 SSH 的公钥和密钥来校验身份信息。

    首先你要知道每台主机有一份公钥和一份私钥。我们要做的事情可以用一张图来表示:

    配置过程

    图片的操作依次为

    1.生成密匙对

    ssh-keygen

    之后可以在/root/.ssh中看到生成的密匙对

    [root@main /]# cd /root/.ssh/
    [root@main .ssh]# ls
    id_rsa id_rsa.pub
    

    2.拷贝一份 A 的公钥给 B

    ssh-copy-id 192.168.0.10
    输入密码

    此时在 B 的authorized_keys中就会有一份 A 的id_rsa.pub公钥信息。

    注:第二步操作的做的事情其实就是一个拷贝密钥的工作,也可以手动拷贝,但是用上面的命令更方便。

    3.最后我们就可以免密登录,也就是不输入密码 A 就可以登录 B

    ssh root@192.168.0.10

    192.168.0.10 为 B 的 ip 地址

    如果要退出登录,输入exit即可。

    给主机起一个别名

    192.168.0.10 是 ip 地址,也就是说登录的时候我们还要输入一次 ip。我们可以给每个主机配置一个别名,用ssh ip-server的方式登录。

    就像人有身份证也有名字一样,我们可以通过 ip 来辨识主机。给他一个别名就是给一个hostname

    可以用hostname来查看你的主机名,要改主机名改他的配置文件

    vi /etc/hostname
    在其中替换为你要改的名字,比如 main

    重启生效

    reboot

    这样主机名已经改掉了,还差一步。我们要让主机名和我们的 ip 关联在一起,修改/etc/hosts文件

    vi /etc/hosts
    添加上 ip 和 hostname 的键值对

    例如:

    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.0.11 main
    192.168.0.10 slave
    

    两边都配置完成可以用ssh slave直接连接slave。如果你想自己免密连接自己那就按照上面的步骤给自己配置一份密匙就行了,动手试试吧。

    SSH 协议是什么以及更多参考

    SSH 协议介绍

    数字签名是什么

    SSH原理与运用(一):远程登录

    SSH原理与运用(二):远程操作与端口转发

    如何在CentOS 7上修改主机名

    相关文章

      网友评论

          本文标题:SSH 实现免密登录

          本文链接:https://www.haomeiwen.com/subject/kzscmxtx.html