Ubuntu系统下配置SSH免密登录的方法

作者:袖梨 2026-06-02

掌握Ubuntu SSH自动登录技巧,可大幅提升远程连接效率。本文将详细介绍密钥配置流程与安全优化方案。

Ubuntu如何设置SSH自动登录

一 目标与准备

  1. 目标:实现客户端连接远程Ubuntu服务器时免输密码(建议同步禁用密码登录增强安全性)。
  2. 准备事项:
    1. 本地设备需安装OpenSSH客户端(多数系统已预装):执行sudo apt install openssh-client。
    2. 远程服务器需安装并运行OpenSSH服务:通过sudo apt install openssh-server安装,使用sudo systemctl status ssh检查服务状态。
    3. 需持有远程服务器的有效登录凭证(包含用户名及主机地址/IP)。

二 使用SSH密钥实现免密登录(推荐)

  1. 生成密钥对(本地执行):推荐使用ssh-keygen -t ed25519 -C "[email protected]"命令,如需兼容旧系统可改用-t rsa -b 4096参数。
  2. 上传公钥至服务器:通过ssh-copy-id user@remote_host完成传输。
  3. 首次连接需验证主机指纹,后续即可实现无密码登录。
  4. 可选配置:优化本地SSH客户端连接方式(编辑~/.ssh/config文件)
    1. 创建或修改配置文件:nano ~/.ssh/config
    2. 配置示例:
      1. Host myserver
        1. HostName remote.example.com
        2. User ubuntu
        3. IdentityFile ~/.ssh/id_ed25519
    3. 配置完成后可直接使用ssh myserver快捷命令。
  5. 补充说明:图形化客户端(如SecureCRT、PuTTY)只需选择对应私钥即可实现自动登录功能。

三 服务器端安全与可选优化

  1. 安全加固建议:
    1. 修改配置文件:sudo nano /etc/ssh/sshd_config
    2. 关键参数设置:确保PubkeyAuthentication设为yes
    3. 可选配置:PasswordAuthentication no(禁用密码前需确认密钥登录有效)
    4. 可选配置:PermitRootLogin prohibit-password(限制root仅能通过密钥登录)
    5. 应用配置:sudo systemctl restart ssh
  2. 连接速度优化:
    1. 在/etc/ssh/sshd_config中禁用GSSAPI:
      1. GSSAPIAuthentication no
      2. GSSAPIDelegateCredentials no
    2. 重启服务生效:sudo systemctl restart ssh

四 常见问题排查

  1. 公钥认证失败处理:
    1. 服务器端权限检查:
      1. chmod 700 ~/.ssh
      2. chmod 600 ~/.ssh/authorized_keys
      3. chown -R $USER:$USER ~/.ssh
  2. 配置密钥仍需输入密码:
    1. 检查客户端是否指定正确私钥(ssh -i ~/.ssh/id_ed25519 user@host)。
    2. 确认服务器sshd_config中PubkeyAuthentication为yes,并按需设置PasswordAuthentication;修改后重启ssh服务。
  3. 连接异常处理:
    1. 检查远程sshd服务状态:sudo systemctl status ssh
    2. 若出现卡顿,建议关闭GSSAPI相关选项。

五 安全提醒

  1. 强烈建议禁止root账户密码登录;如必须启用,应设置复杂密码并限制访问IP。
  2. 禁用密码认证前,务必通过其他会话验证密钥登录可用性。
  3. 私钥文件权限应设为600,避免在不安全环境使用无密码保护的私钥。

通过本文介绍的SSH密钥认证方案,既能实现便捷登录又可保障系统安全,是管理远程服务器的理想选择。

相关文章

精彩推荐