在 Ubuntu 上配置 SSH 免密登录(基于密钥),一般步骤如下:
在**你自己的电脑(客户端)**上执行:
ssh-keygen -t rsa -b 4096
一路回车即可(默认保存在 ~/.ssh/id_rsa 和 ~/.ssh/id_rsa.pub)。
✅ 如果需要不同用途的密钥,可加 -f:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_ubuntu
ssh-copy-id user@remote_ip
例如:
ssh-copy-id ubuntu@192.168.1.100
输入一次远程用户密码后,公钥会自动写入:
~/.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@remote_ip
如果不再提示输入密码,说明配置成功 ✅
检查权限(非常关键):
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
编辑远程服务器配置:
sudo nano /etc/ssh/sshd_config
确保:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
修改后重启:
sudo systemctl restart ssh
chmod 755 ~
确认免密可用后:
sudo nano /etc/ssh/sshd_config
PasswordAuthentication no
sudo systemctl restart ssh
⚠️ 操作前务必确认密钥可用,否则会无法登录!
如果你需要 多用户 / 多服务器 / 非默认端口 / root 免密 的配置方式,可以告诉我具体场景。