关于程序员:如何在-Linux-中设置-SSH-无密码登录

2次阅读

共计 1251 个字符,预计需要花费 4 分钟才能阅读完成。

SSH(Secure SHELL)是一种开源且可信的网络协议,用于登录近程服务器以执行命令和程序。

它还用于应用平安复制 (SCP) 命令和 rsync 命令通过网络将文件从一台计算机传输到另一台计算机。

在本文中,咱们将向您展现如何在基于 RHEL 的 Linux 发行版(例如 CentOS、Fedora、Rocky Linux 和 AlmaLinux)以及基于 Debian 的发行版(例如 Ubuntu 和 Mint)上设置无明码登录,应用 ssh 密钥连贯到近程 Linux 服务器无需输出明码。

应用带有 SSH 密钥的无明码登录将减少两个 Linux 服务器之间的信赖,以便轻松同步或传输文件。

我的设置环境

SSH Client : 192.168.0.12 (Fedora 36)
SSH Remote Host : 192.168.0.11 (CentOS 8)

如果您正在解决多个 Linux 近程服务器,那么 SSH 无明码登录是自动化工作的最佳办法之一,例如应用脚本主动备份、应用 SCP 命令同步文件以及近程命令执行。

在本例中,咱们将设置 SSH 无明码主动登录,从服务器 192.168.0.12 以用户 howtoing 登录到 192.168.0.11 以用户 sheena 登录。

1. 创立身份验证 SSH-Keygen 密钥

首先应用用户 howtoing 登录服务器 192.168.0.12,并应用以下命令生成一对公钥。

$ ssh-keygen -t rsa

2. 上传 SSH 密钥

从服务器 192.168.0.12 应用 SSH,并在服务器 192.168.0.11 的 sheena 的 .ssh 目录下上传新生成的公钥(id_rsa.pub),文件名为 authorized_keys。

$ ssh-copy-id sheena@192.168.0.11

确保对近程服务器上的 ~/.ssh 目录和 ~/.ssh/authorized_keys 文件设置正确的权限。

$ ssh sheena@192.168.0.11 "chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"

3. 禁用明码验证(可选)

为了进步安全性,您能够在近程服务器上禁用明码身份验证,仅容许 SSH 密钥身份验证。为此,请关上近程服务器上的 SSH 服务器配置文件:

$ sudo nano /etc/ssh/sshd_config
OR
$ sudo vi /etc/ssh/sshd_config

找到蕴含 PasswordAuthentication 的行并将其设置为 no。

PasswordAuthentication no

保留文件并重新启动 SSH 服务。

$ sudo systemctl restart sshd

4. 测试 SSH 无明码登录

从当初开始,您能够以 sheena 用户身份从服务器 192.168.0.12 以 howtoing 用户身份登录 192.168.0.11,无需明码。

$ ssh sheena@192.168.0.11

在本文中,您学习了如何应用 ssh 密钥设置 SSH 无明码登录。我心愿这个过程很简略。如果您有任何疑难,请在上面的评论局部发表。

本文由 mdnice 多平台公布

正文完
 0