当前位置 主页 > 服务器问题 > win服务器问题汇总 >

    Linux下SSH免密码登录配置详解

    栏目:win服务器问题汇总 时间:2019-12-08 00:56

    假设有 A、 B 两台 Linux 服务器,我们希望能够从其中一台服务器通过 SSH 免密码登录到另一台服务器。

    两台服务器的信息如下: 

    主机名 IP地址 免密码登录用户名
    server1 192.168.12.11 guest1
    server2 192.168.12.12 guest2

    环境设置(root权限)

    1.关闭防火墙和SELinux

    Redhat使用了SELinux来增强安全,关闭的办法为:

    a. 永久有效
    修改 /etc/selinux/config 文件中的 SELINUX=enforcing 修改为 SELINUX=disabled ,然后重启。

    b. 临时生效
    setenforce 0
    关闭防火墙的方法为:

    a. 永久有效
    开启:chkconfig iptables on
    关闭:chkconfig iptables off

    b. 临时生效
    开启:service iptables start
    关闭:service iptables stop
    需要对两台服务器分别进行设置,关闭防火墙和 SELinux 。  

    2.设置主机名

    编辑 /etc/sysconfig/network 文件,使用命令: vim /etc/sysconfig/network  ,设置格式:HOSTNAME=[主机名] 。
    将A服务器的主机名设置为 server1 。 

    将B服务器的主机名设置为 server2 。

    3.配置hosts

    编辑 /etc/hosts 文件,使用命令:vim /etc/hosts ,在两台服务器的 hosts 文件中分别增加如下配置:

    192.168.12.11 server1
    192.168.12.12 server2 

    4.配置sshd

    编辑两台服务器的 /etc/ssh/sshd_config 文件,使用命令:vim /etc/ssh/sshd_config 。

    去掉以下3行的 “#” 注释:

    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile   .ssh/authorized_keys

    重启 sshd 服务,使用命令:/sbin/service sshd restart 。  

    秘钥设置

    1.创建免密码登录账户

    使用命令:

    useradd guest1 //创建新用户
    passwd guest1 //设置新用户登录密码 

     

    同样地,在 server2 中创建一个 guest2 账户 。

    2.生成秘钥

    从 root 用户切换到要免密码登录的账户,使用命令:su guest1 。

    执行命令:ssh-keygen -t rsa 

    无需指定口令密码,直接回车,命令执行完毕后会在 guest1 用户的家目录中(/home/guest1/.ssh)生成两个文件:

    id_rsa: 私钥
    id_rsa.pub:公钥

     

    按照同样的步骤,在 server2 中为 guest2 账户生成好秘钥文件。

    3.将公钥导入到认证文件

    使用命令: