网站搜索

如何在 Debian 10 中设置 SSH 无密码登录


SSH (Secure Shell) 是一种流行且广泛使用的工具,用于通过不安全的网络进行远程登录和文件传输,它使用加密来保护客户端和服务器之间的连接。

另请阅读:如何在 Linux 上为 SSH 设置双因素身份验证

虽然可以使用普通用户 ID 和密码作为凭据的 SSH,但更建议使用基于密钥的身份验证(或公钥身份验证)来相互验证主机,这称为 SSH 无密码登录。

要求:

  1. 安装 Debian 10 (Buster) 最小服务器

为了轻松理解这一点,我将使用两台服务器:

  • 192.168.56.100 – (howtoing) – 一个 CentOS 7 服务器,我将从它连接到 Debian 10
  • 192.168.56.108 – (howtoing) – 我的 Debian 10 系统,无密码登录。

在本文中,我们将向您展示如何在 Debian 10 Linux 发行版上安装 OpenSSH 服务器设置 SSH 无密码登录。

在 Debian 10 上安装 OpenSSH 服务器

在您的 Debian 10 系统上配置 SSH 无密码登录之前,您需要使用以下命令在系统上安装和配置 OpenSSH 服务器包。


sudo apt-get update
sudo apt-get install openssh-server

接下来,暂时启动 sshd 服务,然后使用 systemctl 命令检查它是否已启动并正在运行,如下所示。


sudo systemctl start sshd
sudo systemctl status sshd

然后启用sshd服务在系统启动时自动启动,每次系统重新启动时如下。


sudo systemctl start sshd

验证 sshd 服务,默认情况下使用 ss 命令 侦听端口 22,如图所示。如果您愿意,可以更改 SSH 端口,如下所示:如何在 Linux 中更改 SSH 端口。


sudo ss -tlpn

在 CentOS 7 (192.168.56.100) 上设置 SSH 密钥

首先,您需要在 CentOS 7 系统上创建 SSH 密钥对(公钥和私钥),您将在该系统上使用以下命令连接到 Debian 10 服务器: ssh-keygen 实用程序如下。


ssh-keygen  

然后为文件输入一个有意义的名称或保留默认名称(这应该是屏幕截图中所示的完整路径,否则文件将在当前目录中创建)。当要求输入密码时,只需按“输入”并将密码留空即可。密钥文件通常默认存储在~/.ssh目录中。

将公钥复制到 Debian 10 服务器 (192.168.56.108)

创建密钥对后,您需要将公钥复制到Debian 10服务器。您可以使用如图所示的ssh-copy-id实用程序(系统将要求您输入服务器上指定用户的密码)。


ssh-copy-id -i ~/.ssh/debian10 [email 

上述命令登录到 Debian 10 服务器,并将密钥复制到服务器,并将它们配置为通过将它们添加到authorized_keys 文件来授予访问权限。

测试 192.168.20.100 的 SSH 无密码登录

现在密钥已复制到 Debian 10 服务器,您需要通过运行以下 SSH 命令来测试 SSH 无密码登录是否有效。现在,登录应该无需输入密码即可完成,但如果您创建了密码,则需要在授予访问权限之前输入它。


ssh -i ~/.ssh/debian10 [email 

在本指南中,我们向您展示了如何在 Debian 10 中安装具有 SSH 无密码登录或基于密钥的身份验证(或公钥身份验证)的 OpenSSH 服务器。如果您想提出与此主题相关的任何问题或分享任何想法,请使用下面的反馈表。