服务器如何开启公钥登录

fiy 其他 85

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    要开启服务器的公钥登录,需要进行以下步骤:

    1. 生成RSA密钥对:使用ssh-keygen命令生成RSA密钥对,分别是公钥(以.pub为后缀)和私钥(无后缀)。可以使用默认的存储路径(一般在用户的主目录下的.ssh文件夹中),也可以自定义路径。

    2. 将公钥添加到服务器:将生成的公钥文件中的内容复制到服务器的~/.ssh/authorized_keys文件中。如果该文件不存在,则可以手动创建。确保每个公钥都单独占用一行。

    3. 设置服务器的权限:确保~/.ssh文件夹的权限为700,authorized_keys文件的权限为600。可以使用chmod命令进行设置,如:chmod 700 ~/.ssh 和 chmod 600 ~/.ssh/authorized_keys。

    4. 修改SSH配置文件:编辑服务器上的SSH配置文件/etc/ssh/sshd_config,找到“PasswordAuthentication”和“ChallengeResponseAuthentication”两个参数,将它们的值改为“no”(默认值为“yes”),保存并退出。

    5. 重启SSH服务:在服务器上使用适用的命令重启SSH服务。可以使用系统特定的命令,如:systemctl restart sshd(适用于系统使用systemd管理服务的情况)。

    6. 测试公钥登录:尝试使用私钥进行登录。在本地终端上使用ssh命令,如:ssh username@server_ip,如果配置正确,则应该可以直接登录,而无需输入密码。

    备注:在设置公钥登录之前,请确保已经通过用户名和密码成功登录到服务器,并且具有足够的权限进行操作。另外,如果使用的是Windows系统,需要使用第三方软件如PuTTY来生成和使用密钥。

    1年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    通过以下步骤,可以在Linux服务器上开启公钥登录:

    1. 生成公钥和私钥对
      在本地计算机上生成公钥和私钥对。使用OpenSSH的ssh-keygen工具可以很方便地生成。打开终端或命令提示符,输入以下命令:

      ssh-keygen -t rsa
      

      这将生成一个RSA密钥对,通常保存在用户的家目录下的.ssh目录中。公钥的文件名为id_rsa.pub,私钥的文件名为id_rsa。

    2. 将公钥上传到服务器
      在本地计算机上生成公钥后,需要将公钥上传到目标服务器。可以使用ssh-copy-id命令将公钥复制到目标服务器上的~/.ssh/authorized_keys文件中,命令格式如下:

      ssh-copy-id user@server_ip
      

      这将会将本地计算机上的公钥复制到目标服务器上,并添加到目标服务器上的authorized_keys文件中。

    3. 配置SSH服务器
      在目标服务器上,需要修改SSH服务器配置文件以允许使用公钥登录。打开SSH服务器配置文件,通常为/etc/ssh/sshd_config,在其中找到以下行并进行修改:

      #RSAAuthentication yes
      #PubkeyAuthentication yes
      #AuthorizedKeysFile	.ssh/authorized_keys
      

      将这些行的注释符号“#”去掉,并将值修改为“yes”。保存文件并关闭。

    4. 重启SSH服务
      在目标服务器上,重启SSH服务以使配置生效。使用适当的命令,例如:

      systemctl restart sshd
      
    5. 测试公钥登录
      现在可以测试公钥登录是否生效。在本地计算机上,打开终端或命令提示符,输入以下命令:

      ssh user@server_ip
      

      这将使用私钥进行认证,如果一切配置正确,将会成功登录到目标服务器。

    注意事项:

    • 在上传公钥到目标服务器时,可能需要输入目标服务器的密码进行认证。
    • 确保私钥文件的权限为600,否则SSH可能会拒绝使用它进行认证。
    • 如果遇到问题,可以查看目标服务器上的/var/log/auth.log文件以获取更详细的错误信息。
    1年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    公钥登录(Public Key Authentication)是一种安全的远程服务器登录方式。相比传统的用户名和密码方式,公钥登录更加安全,因为登录时不需要传输密码,同时还可以通过密钥对的方式实现自动化登录。

    下面介绍如何在 Linux 服务器上开启公钥登录:

    1. 生成密钥对
      首先,在本地电脑上生成密钥对。打开终端,执行以下命令:

      ssh-keygen -t rsa
      

      然后会提示你输入密钥对的保存路径,默认会保存在 ~/.ssh/id_rsa。可以选择使用默认路径,也可以指定其他路径。

    2. 将公钥添加到服务器上的授权列表
      生成密钥对后,会生成公钥文件(id_rsa.pub)和私钥文件(id_rsa)。将公钥文件的内容添加到服务器上的授权列表中,以允许使用该密钥进行登录。

      使用以下命令将公钥文件复制到服务器上:

      ssh-copy-id user@hostname
      

      其中,user 是登录服务器的用户名,hostname 是服务器的主机名或 IP 地址。执行该命令后,会要求输入用户密码,输入后则会将公钥文件添加到服务器的 ~/.ssh/authorized_keys 文件中。

      如果你无法使用 ssh-copy-id 命令,可以手动将公钥文件的内容复制到服务器上的 ~/.ssh/authorized_keys 文件中。使用以下命令将公钥文件的内容复制到剪贴板:

      cat ~/.ssh/id_rsa.pub | pbcopy
      

      然后登录服务器,并将公钥文件的内容粘贴到 ~/.ssh/authorized_keys 文件中。

    3. 配置服务器的 SSH 服务
      在服务器上需要配置 SSH 服务以允许公钥登录。现在大多数 Linux 发行版都默认支持公钥登录,所以通常无需额外配置。
      如果你使用的是其他操作系统或版本,请根据具体情况查阅相关文档,配置 SSH 服务。

    4. 测试公钥登录
      完成以上步骤后,可以尝试使用密钥对进行登录。执行以下命令登录服务器:

      ssh user@hostname
      

      其中,user 是登录服务器的用户名,hostname 是服务器的主机名或 IP 地址。
      如果配置正确,将会自动使用密钥对进行登录,无需输入密码。

    总结:

    通过生成密钥对、添加公钥到授权列表、配置 SSH 服务等步骤,可以在服务器上开启公钥登录。公钥登录不仅更加安全,还可以方便地实现自动化登录。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部