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

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

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

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

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

要求:

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

为了便于理解,我将使用两台服务器:

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

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

在Debian 10上安装OpenSSH Server

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
检查Debian中的SSH端口

检查Debian中的SSH端口

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

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

$ ssh-keygen  

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

生成SSH密钥对

生成SSH密钥对

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

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

$ ssh-copy-id -i ~/.ssh/debian10 [email protected]
将SSH密钥复制到Debian 10

将SSH密钥复制到Debian 10

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

从192.168.20.100测试SSH无密码登录

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

$ ssh -i ~/.ssh/debian10 [email protected]
检查SSH无密码登录Debian 10

检查SSH无密码登录Debian 10

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