使用私钥登录 SSH 服务器(免密登录)

avatar
作者
筋斗云
阅读量:0

SSH(Secure Shell)是一种用于远程登录和安全数据传输的协议。通过SSH,您可以在不安全的网络上安全地连接到远程服务器,并进行加密的数据传输。SSH支持多种身份验证方式,其中之一是使用SSH密钥对进行免密码登录。以下是使用私钥登录SSH服务器的详细介绍:

  1. 生成SSH密钥对

    • 在本地计算机上打开终端或命令行。

    • 使用以下命令生成SSH密钥对。这将创建一个RSA密钥对,包括一个私钥(id_rsa)和一个公钥(id_rsa.pub)。

      ssh-keygen -t rsa 
    • 您将被提示选择密钥的存储位置和密码(可选)。按照提示进行操作即可生成SSH密钥对。

  2. 复制公钥到服务器

    • 使用以下命令将您的公钥(id_rsa.pub)复制到服务器上,替换your_username为您在服务器上的用户名,your_server_ip_or_hostname为服务器的IP地址或主机名。

      ssh-copy-id -i id_rsa.pub your_username@your_server_ip_or_hostname 
    • 您将需要输入服务器的密码以完成此操作。

    • 如果服务器不支持ssh-copy-id命令,您可以手动将公钥内容追加到服务器上的~/.ssh/authorized_keys文件中。
      要将公钥内容手动追加到服务器上的~/.ssh/authorized_keys文件中,可以按照以下步骤进行操 作:

      1. 在本地计算机上生成SSH密钥对(如果尚未生成):

        ssh-keygen -t rsa 

        这将生成一个RSA密钥对,包括私钥(id_rsa)和公钥(id_rsa.pub)。

      2. 查看您的公钥:

        您可以使用文本编辑器或终端命令来查看公钥文件内容。使用cat命令来查看公钥文件的内容:

        cat ~/.ssh/id_rsa.pub 

        将会显示公钥内容。

      3. 连接到服务器:

        使用SSH连接到服务器,替换your_usernameyour_server_ip_or_hostname为实际的用户名和服务器地址:

        ssh your_username@your_server_ip_or_hostname 

        您将需要输入服务器密码以进行连接。

      4. 创建~/.ssh目录(如果不存在):

        如果~/.ssh目录不存在,可以使用以下命令创建它:

        mkdir -p ~/.ssh 
      5. 打开authorized_keys文件进行编辑:

        使用文本编辑器(如nanovim)打开~/.ssh/authorized_keys文件:

        nano ~/.ssh/authorized_keys 
      6. 在文本编辑器中,粘贴您本地计算机上生成的公钥内容(id_rsa.pub文件中的内容)。

      7. 保存并退出文本编辑器:

        • 如果您使用nano编辑器,按Ctrl + O保存文件,然后按Enter
        • 然后按Ctrl + X退出编辑器。
      8. 设置文件权限:

        为了确保安全性,您需要设置~/.ssh目录和authorized_keys文件的权限。运行以下命令:

        chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys 

        这将仅允许您的用户访问这些文件。

    • 命令生成之后使用 ls 命令查看一下

    	id_rsa  id_rsa.pub 
    • 密钥生成后会在当前目录下多出两个文件,id_rsa 和 id_rsa.pub,其中 id_rsa 是私钥(客户端使用),id_rsa.pub 这个是公钥(服务器使用)

      现在,您已经手动将公钥内容追加到服务器上的~/.ssh/authorized_keys文件中,以允许使用私钥进行SSH免密码登录。

  3. 连接到SSH服务器

    • 现在,您可以客户端使用私钥进行SSH连接。在本地终端或命令行中,运行以下命令以连接到服务器:
     ssh -i id_rsa your_username@your_server_ip_or_hostname 
    • 您将不再需要输入服务器密码,而是会自动使用私钥进行身份验证。

通过这些步骤,您已经实现了SSH服务器的免密码登录。请确保您妥善保管私钥文件,以确保安全性。这种方式不仅方便,还提高了服务器的安全性,因为私钥通常比密码更难被破解。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!