SSH(安全外壳)是一种流行且广泛使用的工具,用于通过不安全的网络进行远程登录和文件传输,它使用加密来保护客户端和服务器之间的连接。
另请阅读:如何在 Linux 上为 SSH 设置两因素身份验证
虽然可以使用普通用户 ID 和密码作为凭据的 SSH,但更建议使用基于密钥的身份验证(或公钥身份验证)来相互验证主机,这称为 SSH 无密码登录。
要求:
- 安装 Debian 10 (Buster) 最小服务器
为了轻松理解这一点,我将使用两台服务器:
- 192.168.56.100 –(示例) –我将从中连接到Debian 10 的CentOS 7服务器。
- 192.168.56.108 –(示例) – 我的Debian 10系统,无密码登录。
在本文中,我们将向您展示如何在Debian 10 Linux 发行版上安装OpenSSH服务器设置 SSH 无密码登录。
在 Debian 10 上安装 OpenSSH 服务器
在Debian 10系统上配置 SSH 无密码登录之前,需要使用以下命令在系统上安装和配置 OpenSSH 服务器包。
$ sudo apt-get 更新 $ sudo apt-get install openssh-server
接下来,暂时启动sshd服务,然后使用systemctl 命令检查它是否已启动并正在运行,如下所示。
$ sudo systemctl 启动 sshd $ sudo systemctl 状态 sshd
然后让sshd服务在系统启动时自动启动,每次系统重新启动时,如下所示。
$ sudo systemctl 启动 sshd
验证sshd服务,默认情况下使用ss 命令侦听端口22,如图所示。如果您愿意,可以更改 SSH 端口,如下所示:如何在 Linux 中更改 SSH 端口。
$ sudo ss -tlpn
在 CentOS 7 (192.168.56.100) 上设置 SSH 密钥
首先,您需要在CentOS 7系统上创建 SSH 密钥对(公钥和私钥),您将使用ssh-keygen实用程序从该系统连接到Debian 10服务器,如下所示。
$ ssh 密钥生成器
然后为文件输入一个有意义的名称或保留默认名称(这应该是屏幕截图中所示的完整路径,否则文件将在当前目录中创建)。当要求输入密码时,只需按“输入”并将密码留空即可。密钥文件通常~/.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服务器。如果您想提出与此主题相关的任何问题或分享任何想法,请使用下面的反馈表。