资讯中心

在美国的Linux服务器上配置SSH密钥认证

  

在美国Linux服务器上配置SSH密钥认证可通过以下步骤完成,综合多个技术文档整理出标准化操作流程:


一、生成SSH密钥对(本地操作)

  1. 执行密钥生成命令
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    • -t rsa:指定加密算法为RSA
    • -b 4096:密钥长度(推荐4096位提升安全性)
    • 按提示设置密钥存储路径(默认~/.ssh/id_rsa)及密码(可选)。
  2. 验证密钥生成结果
    ls ~/.ssh/id_rsa* # 应显示私钥(id_rsa)和公钥(id_rsa.pub)

二、上传公钥到服务器

方法1:使用ssh-copy-id(推荐)

ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip

输入服务器密码后,公钥将自动写入~/.ssh/authorized_keys

方法2:手动上传(适用于无ssh-copy-id环境)

  1. 将公钥内容复制到服务器用户的~/.ssh/authorized_keys文件:
    cat ~/.ssh/id_rsa.pub | ssh username@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
  2. 权限设置(关键步骤):
    chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
    权限错误会导致认证失败。

三、配置SSH服务端(服务器操作)

  1. 修改SSH配置文件
    sudo vi /etc/ssh/sshd_config
    确保以下参数生效:
    PubkeyAuthentication yes # 启用密钥认证 PasswordAuthentication no # 禁用密码认证(可选,增强安全)PermitRootLogin no # 禁用root远程登录(可选)AuthorizedKeysFile .ssh/authorized_keys # 公钥存储路径
  2. 重启SSH服务
    sudo systemctl restart sshd # CentOS/RedHat sudo service ssh restart # Ubuntu/Debian

四、测试密钥登录

ssh -i ~/.ssh/id_rsa username@server_ip

五、安全加固建议

  1. 修改默认SSH端口
    编辑/etc/ssh/sshd_config,将Port 22改为其他端口(如2222),降低暴力破解风险。
  2. 启用防火墙限制
    仅允许特定IP访问SSH端口:
    sudo ufw allow from 192.168.1.0/24 to any port 2222

注意事项

通过上述步骤,可实现免密登录并显著提升服务器安全性。如需完整操作示例或工具支持,可参考原文链接。