温馨提示×

如何配置ubuntu ssh密钥

小樊
43
2026-09-10 00:39:05
栏目: 智能运维

下面以 Ubuntu 服务器端 + 客户端(Linux / macOS / WSL) 为例,说明如何配置 SSH 密钥登录。Windows 用户可用 PowerShell / Git Bash 操作,步骤基本一致。


一、在客户端生成 SSH 密钥

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

ssh-keygen -t ed25519 -C "your_email@example.com"

如果系统较老不支持 ed25519,可用:

ssh-keygen -t rsa -b 4096

按提示操作:

  • 保存路径默认:~/.ssh/id_ed25519
  • 可设置密码(passphrase),增强安全性(推荐)

生成后会有两个文件:

  • id_ed25519(私钥,不要泄露
  • id_ed25519.pub(公钥)

二、将公钥复制到 Ubuntu 服务器

方法 1(推荐):使用 ssh-copy-id

ssh-copy-id username@server_ip

示例:

ssh-copy-id ubuntu@192.168.1.100

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

~/.ssh/authorized_keys

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

在客户端查看公钥:

cat ~/.ssh/id_ed25519.pub

在服务器上执行:

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

粘贴公钥内容,然后:

chmod 600 ~/.ssh/authorized_keys

三、测试 SSH 密钥登录

在客户端执行:

ssh username@server_ip

如果配置正确,将不再需要输入服务器密码(除非设置了 passphrase)。


四、禁用密码登录(提高安全性)

编辑服务器 SSH 配置:

sudo nano /etc/ssh/sshd_config

修改或确认以下配置:

PubkeyAuthentication yes
PasswordAuthentication no

重启 SSH 服务:

sudo systemctl restart ssh

⚠️ 确保密钥登录成功后再禁用密码,否则可能锁死服务器。


五、常见问题排查

1. 权限错误

服务器上权限必须正确:

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

2. 仍提示输入密码

检查:

sudo tail -f /var/log/auth.log

3. 使用非默认端口

ssh -p 2222 username@server_ip

六、可选:使用 SSH 配置文件简化登录

客户端编辑:

nano ~/.ssh/config

示例:

Host myserver
    HostName 192.168.1.100
    User ubuntu
    Port 22
    IdentityFile ~/.ssh/id_ed25519

以后直接:

ssh myserver

如果你需要:

  • Ubuntu → Ubuntu
  • Windows 客户端
  • 多用户 / 多密钥
  • Fail2ban + SSH 安全加固

可以告诉我你的具体使用场景。

0