温馨提示×

Ubuntu如何设置SSH自动登录

小樊
41
2025-12-24 03:28:40
栏目: 智能运维

Ubuntu SSH 自动登录配置指南

一 目标与准备

  • 目标:在客户端实现连接远程 Ubuntu 服务器时无需交互输入密码(可选:禁用密码登录以提升安全性)。
  • 准备:
    • 本地机器安装 OpenSSH 客户端(通常已自带):sudo apt install openssh-client
    • 远程机器安装并运行 OpenSSH 服务:sudo apt install openssh-server;确认服务运行:sudo systemctl status ssh
    • 具备远程服务器的登录权限(用户名与主机/IP)。

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

  • 生成密钥对(本地):ssh-keygen -t ed25519 -C “your_email@example.com”(推荐 ed25519;若需兼容旧系统可用 -t rsa -b 4096)。
  • 将公钥复制到服务器:ssh-copy-id user@remote_host
  • 首次连接会提示确认主机指纹,之后即可无密码登录。
  • 可选:在本地 SSH 客户端配置简化登录(~/.ssh/config)
    • 新建或编辑:nano ~/.ssh/config
    • 示例:
      • Host myserver
        • HostName remote.example.com
        • User ubuntu
        • IdentityFile ~/.ssh/id_ed25519
    • 之后可直接执行:ssh myserver
  • 说明:若使用图形化客户端(如 SecureCRT、PuTTY),同样选择私钥进行认证即可实现“自动登录”效果。

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

  • 建议仅启用密钥认证并禁用密码登录:
    • 编辑:sudo nano /etc/ssh/sshd_config
    • 确保:PubkeyAuthentication yes
    • 可选:PasswordAuthentication no(禁用密码后务必确认密钥已可用,避免被锁)
    • 可选:PermitRootLogin prohibit-password(允许 root 仅用密钥登录,更安全)
    • 使配置生效:sudo systemctl restart ssh
  • 提升登录速度(可选):
    • 在 /etc/ssh/sshd_config 中禁用 GSSAPI:
      • GSSAPIAuthentication no
      • GSSAPIDelegateCredentials no
    • 重启服务:sudo systemctl restart ssh

四 常见问题排查

  • 权限问题导致公钥被拒:
    • 服务器上确保目录与文件权限正确:
      • chmod 700 ~/.ssh
      • chmod 600 ~/.ssh/authorized_keys
      • chown -R $USER:$USER ~/.ssh
  • 已配置密钥仍提示输入密码:
    • 确认客户端使用了正确的私钥(ssh -i ~/.ssh/id_ed25519 user@host)。
    • 检查服务器 sshd_config 中 PubkeyAuthentication 为 yes,且 PasswordAuthentication 按需设置;重启 ssh 服务后再试。
  • 首次连接被拒绝或卡顿:
    • 确认远程 sshd 服务在运行(sudo systemctl status ssh)。
    • 若卡顿,按上文关闭 GSSAPI 相关选项。

五 安全提醒

  • 不建议为 root 开启密码登录;如确需启用,务必设置强密码并限制来源 IP。
  • 禁用密码登录前,先在备用终端验证密钥登录可用,避免被锁。
  • 私钥请妥善保管并设置合适的权限(600);在不可信环境中避免私钥无口令。

0