如何在 Debian 10 中设置 SSH 无密码登录
SSH(安全外壳)是一种流行且广泛使用的工具,用于通过不安全的网络进行远程登录和文件传输,它使用加密来保护客户端和服务器之间的连接。
另请参阅:如何在 Linux 上为 SSH 设置双因素身份验证
虽然可以使用普通用户 ID 和密码作为凭据的 SSH,但更建议使用基于密钥的身份验证(或公钥身份验证)来相互验证主机,这称为 SSH 无密码登录。
要求:
为了轻松理解这一点,我将使用两台服务器:
- 192.168.56.100 – (示例) – 一个CentOS 7服务器,我将从该服务器连接到Debian 10。
- 192.168.56.108 – (示例) – 我的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
使用ss 命令验证sshd服务,默认情况下,该服务侦听端口22,如下所示。如果您愿意,可以更改 SSH 端口,如下所示:如何在 Linux 中更改 SSH 端口。
$ sudo ss -tlpn
在 CentOS 7(192.168.56.100)上设置 SSH 密钥
首先,您需要在CentOS 7系统上创建一个 SSH 密钥对(公钥和私钥),从那里您将使用ssh-keygen实用程序连接到您的Debian 10服务器,如下所示。
$ ssh-keygen
然后为文件输入一个有意义的名称或保留默认名称(这应该是屏幕截图中显示的完整路径,否则文件将在当前目录中创建)。当要求输入密码时,只需按“enter”~/.ssh
并将密码留空。密钥文件通常默认存储在目录中。
将公钥复制到 Debian 10 服务器(192.168.56.108)
创建密钥对后,您需要将公钥复制到Debian 10服务器。您可以按照图示使用ssh-copy-id实用程序(系统将要求您输入服务器上指定用户的密码)。
$ ssh-copy-id -i ~/.ssh/debian10 example@192.168.56.108
上述命令登录到Debian 10服务器,并将密钥复制到服务器,并通过将其添加到 authorized_keys 文件中来配置它们以授予访问权限。
从 192.168.20.100 测试 SSH 无密码登录
现在密钥已复制到Debian 10服务器,您需要通过运行以下 SSH 命令来测试 SSH 无密码登录是否有效。登录现在应该无需输入密码即可完成,但如果您创建了密码,则需要在授予访问权限之前输入密码。
$ ssh -i ~/.ssh/debian10 example@192.168.56.108
在本指南中,我们向您展示了如何在Debian 10中安装具有 SSH 无密码登录或基于密钥的身份验证(或公钥身份验证)的OpenSSH服务器。如果您想询问与此主题相关的任何问题或分享任何想法,请使用下面的反馈表。