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

Linux下SSH免密码登录配置详解这篇文章主要介绍了 Linux 下 SSH 免密码登录配置详解假设有 A B 两台 Linux 服务器 我们希望能够从其中一台服务器通过 SSH 免密码登录到另一台服务器 两台服务器的信息如下 主机名 IP 地址免密码登录用户名 server1192 168 12 11guest1serv 168 12 12guest2 环境设置 root 权限 1 关闭防火墙和 SELinuxRedha 使用了 SELinux 来增强安全 关闭的办法为 a 永久有效修改

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

环境设置(root权限)

1.关闭防火墙和SELinux

setenforce 0 
开启: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.创建免密码登录账户

使用命令:

# 如果使用root账户可以不用建新用户 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.将公钥导入到认证文件

使用命令:

cat /home/guest1/.ssh/id_rsa.pub >> /home/guest1/.ssh/authorized_keys ssh guest2@server2 cat /home/guest2/.ssh/id_rsa.pub >> authorized_keys 

在这里插入图片描述
使用命令 cat authorized_keys 查看 authorized_keys 文件内容如下:
在这里插入图片描述
4.设置文件访问权限






使用命令:

chmod 700 /home/guest1/.ssh chmod 600 /home/guest1/.ssh/authorized_keys 

执行完以上设置之后 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 guest2@server2:/home/guest2/.ssh/authorized_keys scp /home/guest1/.ssh/known_hosts guest2@server2:/home/guest2/.ssh/known_hosts 

在这里插入图片描述
待复制完成以后,先使用以下命令设置文件访问权限。

chmod 700 /home/guest2/.ssh chmod 600 /home/guest2/.ssh/authorized_keys 

然后,执行 ssh guest1@server1 命令就能够使用server2的guest2账户免密码登录server1的guest1账户了
在这里插入图片描述
至此,两台服务器的SSH 免密码登录就全部设置完成,如果出错,请仔细检查以上各个步骤。




版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/219392.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午10:39
下一篇 2026年3月17日 下午10:40


相关推荐

  • 群晖docker mysql_Watchtower – 群晖自动更新 Docker 映像与容器

    群晖docker mysql_Watchtower – 群晖自动更新 Docker 映像与容器群晖的Docker功能非常丰富,不过也有不完美的地方,映像和容器更新比较麻烦,比如我的Docker容器运行了十几个,如果通过手动更新非常繁琐,容器还需要重新配置本文就介绍如何通过watchtower全自动更新Docker映像,并保留原始配置重新运行容器。watchtower是一个可以监控正在运行的容器镜像是否有更新的工具,当本地镜像与远端镜像有差异的时候,可以自动使用当前容器的运行参数以新镜像重…

    2025年6月13日
    5
  • sql error 904_mysql报2005错误

    sql error 904_mysql报2005错误mysql清除relay-log文件方法详解mysql清除relay-log文件方法详解今天在本机的mysql数据目录下发现了许多类似hostname-relay-bin.0000*的文件,该文件一般是在mysqlslave实例上存在。主要用途是记录主从同步的信息,正常情况下会自动删除的。本机未配置过master、slave,…文章白及882016-02-245754浏览量exp导出出现…

    2026年2月4日
    8
  • pycharm指令_ftp登录及命令行用法

    pycharm指令_ftp登录及命令行用法“阅读本文大概需要3分钟。”相信很多人使用PyCharm来开发Python程序,但却少有人知道,PyCharm实际上有一个命令行程序。通过这个命令行程序可以帮你做很多事…

    2022年8月26日
    11
  • 灵敏度和特异度计算方法

    灵敏度和特异度计算方法灵敏度 识别出的所有正例占全部正例的比例特异度 识别出的所有负例占全部负例的比例灵敏度高 漏诊率低 特异度高 误诊率低 参考 http www 360doc com content 19 0409 10 52645714 827389933 shtml

    2026年3月26日
    3
  • 读取位置时发生访问冲突0xC0000005_应用程序异常0xc0000409

    读取位置时发生访问冲突0xC0000005_应用程序异常0xc0000409转首先排除一种小概率事件就是系统冲突导致的,比如系统盘目录存在类似的第三方库文件,程序运行将崩溃,并报错0xC0000005:读取位置0x00000000时发生访问冲突。上面的意思就是你吧值付给了不该赋给的变量,或者说你把值付给了不能付给的变量(或者常量)(1)最简单也最直接的错误可能就是scanf()的问题,我们都知道输入的时候都是scanf(“%格式”,&变量),那…

    2022年10月3日
    5
  • java子类父类的加载顺序

    java子类父类的加载顺序

    2021年7月15日
    56

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号