下面以 Debian 系统为例,说明如何配置 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(公钥)ssh-copy-id user@server_ip
输入服务器密码后,公钥会自动写入:
~/.ssh/authorized_keys
在客户端查看公钥:
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
⚠️ 确认密钥登录可用后再禁用密码登录,否则可能锁死服务器。
确保:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Debian 一般不需处理 SELinux。
确保 22 端口开放:
sudo ufw allow OpenSSH
如果你愿意,可以告诉我:
我可以给你更具体的命令。