如何在 Debian 10 中设置 SSH 无密码登录
SSH (Secure Shell) 是一种流行且广泛使用的工具,用于通过不安全的网络进行远程登录和文件传输,它使用加密来保护客户端和服务器之间的连接。
另请阅读:如何在 Linux 上为 SSH 设置双因素身份验证
虽然可以使用普通用户 ID 和密码作为凭据的 SSH,但更建议使用基于密钥的身份验证(或公钥身份验证)来相互验证主机,这称为 SSH 无密码登录。
要求:
- 安装 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 服务器。如果您想提出与此主题相关的任何问题或分享任何想法,请使用下面的反馈表。