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);在不可信环境中避免私钥无口令。