如何在Linux下建立SSH密钥认证

如何使您的安全Shell连接更安全

Secure Shell是登录到远程Linux服务器或桌面的最流行的方法。通过使用此工具,您可以通过安全通道访问远程机器上的命令行。在开箱即用时,您将键入远程用户的密码。尽管此方法仍然比旧的方法(如telnet)更安全,但您可以使用SSH密钥验证使其更安全。

什么是密钥认证?

想象一下,你有一个锁,唯一的锁定是锁定知道所属的特定键。锁知道钥匙如何属于您?因为密钥包含对您是唯一的签名。在锁中是一个匹配的签名,密钥用于比较。签名是否匹配,锁将打开。如果关键合身,但签名不匹配,锁将无法打开。

SSH密钥身份验证如何在现实生活中工作是您创建一个密钥对(包含私有和公共代码)并将公钥复制到要登录的服务器。如果您尝试使用密钥身份验证登录,并且服务器没有与私钥匹配的公钥,则不会允许您访问。

如何生成SSH密钥对

要做的第一件事是生成SSH密钥对,它将创建计算机用于验证登录的代码。以下是如何做到这一点。

  1. 在桌面上打开一个终端窗口。

  2. 发出该命令:

    ssh-keygen
    ssh-keygen命令在终端
  3. 给密钥一个名称和位置。

    新闻输入/返回在您的键盘上使用默认位置,终端将显示该位置。

    SSH密钥的位置
  4. 输入并验证密钥的密码短语。

    确保这个密码是强大且唯一的。

    为密钥输入密码短语
  5. 你现在有一个ssh密钥对。你会发现这两个文件〜/ .ssh.,他们的名字将是:

    • id_rsa—私钥。
    • id_rsa.pub - 公钥。

将公钥复制到远程计算机

接下来,您必须将公钥文件复制到要登录的远程计算机。为此,请输入命令:

ssh-copy-id用户@ remote_ip

其中USER是远程机器上的用户名,REMOTE_IP是远程机器的IP地址。

使用ssh-copy-id命令的示例

如果这是您第一次安全shell进入远程机器,则需要确认连接。否则,您将看到在远程计算机上输入用户密码的提示。成功输入远程密码后,就可以测试连接了。

测试连接

通过发出命令测试连接:

ssh USER@REMOTE_IP

其中USER是远程机器上的用户名,REMOTE_IP是远程机器的IP地址。

在终端中使用ssh命令的示例

您将收到SSH密钥对密码短语的提示。一旦输入了正确的密钥密码,就可以访问远程机器了。

禁用密码身份验证

您可以通过禁用密码身份验证进一步逐步休息一步。使用此配置到位,获得对远程计算机访问的唯一方法来自包含来自匹配对的私钥的计算机。换句话说,没有密钥对,没有访问。

要禁用密码验证,请登录到远程计算机并发出命令:

sudo nano / etc / ssh / sshd_config

在这个文件中,查找以下行:

# PasswordAuthentication是的

将该行改为:

PasswordAuthentication没有

保存并关闭文件。用命令重新启动ssh:

重启SSHD
命令提示符。

现在,如果您试图从任何不包含私钥的桌面(或服务器)登录到远程计算机,系统将拒绝您的访问。

此页面有用吗?