温馨提示×

怎样配置debian ssh密钥

小樊
39
2026-10-28 21:29:06
栏目: 智能运维

下面以 Debian 系统为例,说明如何配置 SSH 密钥登录(客户端生成密钥 → 拷贝到服务器 → 禁用密码登录)。


一、在客户端生成 SSH 密钥

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

ssh-keygen -t ed25519 -C "your_email@example.com"
  • 推荐使用 ed25519(更安全)
  • 如果使用旧系统不支持,可用:
    ssh-keygen -t rsa -b 4096
    

按提示操作:

  • 密钥保存路径(默认 ~/.ssh/id_ed25519)
  • 可设置密钥密码(推荐,提升安全性)

生成后会有:

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

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

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

ssh-copy-id user@server_ip

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

~/.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 user@server_ip

如果不需要输入服务器密码(或只输入密钥密码),说明配置成功。


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

在 Debian 服务器 上编辑 SSH 配置:

sudo nano /etc/ssh/sshd_config

修改或确认以下内容:

PubkeyAuthentication yes
PasswordAuthentication no
PermitRootLogin no   # 建议禁止 root 直接登录

重启 SSH 服务:

sudo systemctl restart ssh

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


五、常见问题

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

确保:

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

2. SELinux(Debian 默认无,可忽略)

Debian 一般不需处理 SELinux。

3. 防火墙

确保 22 端口开放:

sudo ufw allow OpenSSH

如果你愿意,可以告诉我:

  • 是 本机 → 远程 Debian
  • 还是 Debian → Debian
  • 是否需要 root 登录 / 多用户

我可以给你更具体的命令。

0 踩