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

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

本文主要介绍Linux下SSH免密码登录配置的详细说明。通过示例代码非常详细,对大家的学习或者工作都有一定的参考价值。如果你需要,让我们和边肖一起学习吧。

假设有两台Linux服务器A和B,我们希望能够通过SSH登录到另一台服务器,而不需要密码。

两台服务器的信息如下:

主机名

IP地址;网络地址

无密码登录用户名

服务器1

192.168.12.11

guest1

服务器2

192.168.12.12

guest2

环境设置(root权限)

1.关闭防火墙和SELinux

Redhat使用SELinux来增强安全性,关闭方法是:

A.永久有效性

将/etc/selinux/config文件中的SELINUX=enforcing修改为SELINUX=disabled,然后重新启动。

B.暂时生效

setenforce 0

关闭防火墙的方法是:

A.永久有效性

打开:chkconfig iptables打开

关闭:chkconfig iptables关闭

B.暂时生效

打开:服务iptables开始

关闭:服务iptables停止

两台服务器需要分开设置,防火墙和SELinux要关闭。

2.设置主机名

使用命令:vim /etc/sysconfig/network编辑/etc/sysconfig/network文件,并设置格式:HOSTNAME=[ hostname]。

将服务器a的主机名设置为server1。

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

3.配置hosts

编辑/etc/hosts文件,并使用命令:vim /etc/hosts将以下配置添加到两台服务器的hosts文件中:

服务器1

服务器2

4.配置sshd

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

删除以下3行中的“#”注释:

RSA身份验证是

公钥身份验证是

AuthorizedKeysFile。ssh/授权密钥

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

秘钥设置

1.创建免密码登录账户

使用命令:

add user guest 1//创建新用户

Passwd guest1 //设置新用户的登录密码

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

2.生成秘钥

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

执行命令:ssh-keygen -t rsa

无需指定密码,只需按回车键。执行该命令后,将在主目录(/home/guest1/)中生成两个文件。guest1用户的ssh):

Id_rsa:私钥

Id_rsa.pub:公钥

按照相同的步骤,在server2中为guest2帐户生成密钥文件。

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

使用命令:

猫/家/客人1/。ssh/id_rsa.pub /home/guest1/。ssh/授权密钥

ssh guest 2 @ server 2 cat/home/guest 2/。ssh/id_rsa.pub授权密钥

使用命令cat authorized_keys查看authorized_keys文件的内容,如下所示:

4.设置文件访问权限

使用命令:

chmod 700 /home/guest1/。嘘

chmod 600 /home/guest1/。ssh/授权密钥

执行上述设置后,server1无需密码即可登录本机。使用命令:ssh guest1@server1。

注意:当known_hosts文件中缺少主机名信息时,将提示您以下信息。输入yes将主机名写入known_hosts文件并成功登录。

至此,主机server1的SSH免密码登录完成,然后server2配置完成。

5.将认证文件复制到其他主机

执行以下命令,将生成的authorized_keys和known_hosts文件从server1复制到server2。

# scp[要传输的本地文件][远程主机用户名] @远程主机ip或主机名:[文件要传输到的目的地]

scp /home/guest1/。ssh/authorized _ keys guest 2 @ server 2:/home/guest 2/。ssh/授权密钥

scp /home/guest1/。ssh/known _ hosts guest 2 @ server 2:/home/guest 2/。ssh/已知主机

复制完成后,使用以下命令设置文件访问权限。

chmod 700 /home/guest2/。嘘

chmod 600 /home/guest2/。ssh/授权密钥

然后,执行ssh guest1@server1命令,使用server2的guest2帐户登录server1的guest1帐户,无需密码。

至此,两台服务器的SSH免密码登录已经设置完毕。如果有错误,请仔细检查上述步骤。

这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

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