编辑
2025-03-11
Linux运维
00

目录

步骤 1:在本地计算机生成SSH密钥对
步骤 2:将公钥上传到服务器
方式1
方式2
步骤 3:测试SSH密钥登录
方式1
在 MobaXterm 中配置 SSH 密钥登录
步骤 4:禁用密码认证
步骤 5:验证配置
注意事项

使用SSH密钥认证是一种比密码认证更安全的方式,因为它依赖于加密的密钥对,而不是容易被暴力破解的密码。以下是详细步骤,帮助您在服务器上配置SSH密钥认证并禁用密码认证。


步骤 1:在本地计算机生成SSH密钥对

  1. 打开终端(Linux/macOS)或 PowerShell(Windows)。
  2. 运行以下命令生成SSH密钥对:
    bash
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    -t rsa:指定密钥类型为RSA。 • -b 4096:指定密钥长度为4096位(更安全)。 • -C "your_email@example.com":添加注释(可选,通常用于标识密钥)。
  3. 系统会提示您选择保存密钥的位置,默认是 ~/.ssh/id_rsa(私钥)和 ~/.ssh/id_rsa.pub(公钥)。直接按回车使用默认路径。
  4. 设置一个强密码来保护您的私钥(可选,但推荐)。

完成后,您会在 ~/.ssh/ 目录下看到两个文件: • id_rsa:私钥(不要分享给任何人)。 • id_rsa.pub:公钥(需要上传到服务器)。


步骤 2:将公钥上传到服务器

方式1

  1. 使用以下命令将公钥上传到服务器:
    bash
    ssh-copy-id -i ~/.ssh/id_rsa.pub username@your_server_ip
    username:您在服务器上的用户名。 • your_server_ip:服务器的IP地址。
  2. 输入服务器的密码以完成上传。

上传成功后,公钥会被自动添加到服务器上的 ~/.ssh/authorized_keys 文件中。

方式2

ssh登录到服务器,然后这样将追加公钥到 authorized_keys:

cat ~/公钥文件id_rsa.pub >> ~/.ssh/authorized_keys

步骤 3:测试SSH密钥登录

方式1

  1. 尝试使用密钥登录服务器:
    bash
    ssh username@your_server_ip
  2. 如果一切正常,您应该可以直接登录,而无需输入密码(除非您在生成密钥时设置了密码)。

在 MobaXterm 中配置 SSH 密钥登录

打开 MobaXterm,点击 ​Session,选择 ​SSH。

输入服务器的 IP 地址和用户名。

在 ​Advanced SSH settings 选项卡中:

勾选 ​Use private key。

点击右侧的文件夹图标,选择您保存的私钥文件(例如 id_rsa)。

点击 ​OK 保存配置。


步骤 4:禁用密码认证

  1. 登录到服务器。
  2. 编辑SSH配置文件 /etc/ssh/sshd_config
    bash
    sudo vim /etc/ssh/sshd_config
  3. 找到以下行并修改为:
    bash
    PasswordAuthentication no
  4. 确保以下行没有被注释掉(如果没有,请添加):
    bash
    PubkeyAuthentication yes
  5. 保存并退出编辑器。
  6. 重启SSH服务以应用更改:
    bash
    sudo systemctl restart sshd

步骤 5:验证配置

  1. 尝试使用SSH密钥登录服务器,确保能够正常登录。
  2. 尝试使用密码登录,应该会被拒绝。

注意事项

  1. 备份私钥:将私钥(~/.ssh/id_rsa)备份到安全的地方,避免丢失。
  2. 多设备访问:如果您需要从多台设备访问服务器,可以在每台设备上生成SSH密钥,并将公钥添加到服务器的 ~/.ssh/authorized_keys 文件中。
  3. 保护私钥:确保私钥文件的权限为 600,即只有所有者可以读写:
    bash
    chmod 600 ~/.ssh/id_rsa
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!