温馨提示×

ubuntu ssh免密登录如何设置

小樊
39
2026-10-01 03:52:02
栏目: 智能运维

在 Ubuntu 上设置 SSH 免密登录(公钥登录),一般步骤如下:


一、在本地机器生成密钥(如果还没有)

在**你自己的电脑(客户端)**上执行:

ssh-keygen -t rsa -b 4096

一路回车即可,默认会生成:

  • 私钥:~/.ssh/id_rsa
  • 公钥:~/.ssh/id_rsa.pub

(也可用 ed25519,更安全:ssh-keygen -t ed25519)


二、把公钥拷贝到 Ubuntu 服务器

方法 1:使用 ssh-copy-id(最简单)

ssh-copy-id user@server_ip

user 是服务器用户名,server_ip 是服务器 IP 或域名

输入一次密码后,公钥会自动写入服务器的:

~/.ssh/authorized_keys

方法 2:手动复制(无 ssh-copy-id 时)

  1. 查看本地公钥:
cat ~/.ssh/id_rsa.pub
  1. 登录服务器,创建目录并写入:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys

把公钥内容粘贴进去,保存。

  1. 设置权限:
chmod 600 ~/.ssh/authorized_keys

三、测试免密登录

ssh user@server_ip

如果不再提示输入密码,说明配置成功 ✅


四、常见问题排查

1. 仍然要密码

检查服务器权限:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

2. 确认 SSH 配置允许公钥登录

编辑服务器 /etc/ssh/sshd_config:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

修改后重启 SSH:

sudo systemctl restart ssh

3. 家目录权限问题

服务器用户家目录不能对其他用户可写:

chmod 755 ~

五、(可选)禁用密码登录(更安全)

确认免密可用后:

sudo nano /etc/ssh/sshd_config
PasswordAuthentication no
sudo systemctl restart ssh

如果你是 WSL / 云服务器 / 多用户环境,可以告诉我,我可以给你更针对性的步骤。

0 踩