在 Ubuntu 上配置 SSH 密钥一般包括生成密钥、配置权限、上传公钥、测试登录几个步骤。下面以**客户端 Ubuntu → 远程服务器(Linux)**为例说明。
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
常用参数说明:
-t rsa:密钥类型(也可 ed25519)-b 4096:密钥长度-C:注释(一般是邮箱)推荐使用更安全的:
ssh-keygen -t ed25519 -C "your_email@example.com"
默认:
/home/youruser/.ssh/id_rsa
直接回车即可。
ls ~/.ssh
你会看到:
id_rsa(私钥,不能泄露)id_rsa.pub(公钥,可上传)ssh-copy-id user@server_ip
示例:
ssh-copy-id ubuntu@192.168.1.100
输入一次服务器密码即可。
在本地查看公钥:
cat ~/.ssh/id_rsa.pub
在服务器上:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
粘贴公钥内容,然后:
chmod 600 ~/.ssh/authorized_keys
ssh user@server_ip
如果配置正确,将不再需要输入服务器密码(若设置了密钥密码,会提示输入密钥密码)。
在服务器上编辑:
sudo nano /etc/ssh/sshd_config
修改:
PasswordAuthentication no
PubkeyAuthentication yes
重启 SSH:
sudo systemctl restart ssh
⚠️ 确保密钥登录成功后再关闭密码登录!
确保:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
ssh -i ~/.ssh/id_rsa user@server_ip
ssh -v user@server_ip
如果你是用于 GitHub / GitLab / 服务器自动化 / WSL,可以告诉我具体场景,我可以给你更针对性的配置方案。