在 Ubuntu 上设置 SSH 免密登录(公钥登录),一般步骤如下:
在**你自己的电脑(客户端)**上执行:
ssh-keygen -t rsa -b 4096
一路回车即可,默认会生成:
~/.ssh/id_rsa~/.ssh/id_rsa.pub(也可用 ed25519,更安全:ssh-keygen -t ed25519)
ssh-copy-id user@server_ip
user是服务器用户名,server_ip是服务器 IP 或域名
输入一次密码后,公钥会自动写入服务器的:
~/.ssh/authorized_keys
cat ~/.ssh/id_rsa.pub
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
把公钥内容粘贴进去,保存。
chmod 600 ~/.ssh/authorized_keys
ssh user@server_ip
如果不再提示输入密码,说明配置成功 ✅
检查服务器权限:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
编辑服务器 /etc/ssh/sshd_config:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
修改后重启 SSH:
sudo systemctl restart ssh
服务器用户家目录不能对其他用户可写:
chmod 755 ~
确认免密可用后:
sudo nano /etc/ssh/sshd_config
PasswordAuthentication no
sudo systemctl restart ssh
如果你是 WSL / 云服务器 / 多用户环境,可以告诉我,我可以给你更针对性的步骤。