温馨提示×

Ubuntu如何配置SSH密钥

小樊
48
2026-09-07 03:20:21
栏目: 智能运维

在 Ubuntu 上配置 SSH 密钥一般包括生成密钥、配置权限、上传公钥、测试登录几个步骤。下面以**客户端 Ubuntu → 远程服务器(Linux)**为例说明。


一、在本地 Ubuntu 生成 SSH 密钥

1. 生成密钥(默认 RSA)

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"

2. 设置保存路径

默认:

/home/youruser/.ssh/id_rsa

直接回车即可。

3. 设置密码(可选)

  • 建议设置密码(提高安全性)
  • 也可直接回车(无密码)

二、查看生成的密钥

ls ~/.ssh

你会看到:

  • id_rsa(私钥,不能泄露
  • id_rsa.pub(公钥,可上传)

三、将公钥上传到远程服务器

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

ssh-copy-id user@server_ip

示例:

ssh-copy-id ubuntu@192.168.1.100

输入一次服务器密码即可。


方法 2:手动复制公钥

在本地查看公钥:

cat ~/.ssh/id_rsa.pub

在服务器上:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys

粘贴公钥内容,然后:

chmod 600 ~/.ssh/authorized_keys

四、测试 SSH 密钥登录

ssh user@server_ip

如果配置正确,将不再需要输入服务器密码(若设置了密钥密码,会提示输入密钥密码)。


五、禁用密码登录(可选,提高安全性)

服务器上编辑:

sudo nano /etc/ssh/sshd_config

修改:

PasswordAuthentication no
PubkeyAuthentication yes

重启 SSH:

sudo systemctl restart ssh

⚠️ 确保密钥登录成功后再关闭密码登录!


六、常见问题

1. 权限错误导致无法登录

确保:

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

2. 指定私钥登录

ssh -i ~/.ssh/id_rsa user@server_ip

3. 查看 SSH 调试信息

ssh -v user@server_ip

如果你是用于 GitHub / GitLab / 服务器自动化 / WSL,可以告诉我具体场景,我可以给你更针对性的配置方案。

0