SSH 密钥认证与安全配置 Print

  • 12

SSH 密钥认证比密码登录更安全,建议所有服务器都使用密钥认证。

1. 生成密钥对

# 推荐使用 ed25519 算法(更安全、速度更快)
ssh-keygen -t ed25519 -C "your_email@example.com"

# 或使用 RSA 4096 位(兼容性更好)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

执行后会提示输入保存路径和密码短语(passphrase),建议设置密码短语增加安全性。

2. 上传公钥到服务器

ssh-copy-id user@server_ip

或者手动操作:

cat ~/.ssh/id_ed25519.pub
# 复制输出内容,登录服务器后:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

3. 配置服务器(sshd_config)

编辑 /etc/ssh/sshd_config

PubkeyAuthentication yes
PasswordAuthentication no
PermitRootLogin no
AllowUsers username
sudo systemctl restart sshd

4. 本地多服务器配置

编辑 ~/.ssh/config

Host myserver
    HostName 8.217.108.236
    User root
    Port 4321
    IdentityFile ~/.ssh/mykey_ed25519

Host dev-server
    HostName dev.example.com
    User devuser
    Port 22

配置后可直接使用:ssh myserver

5. SSH 代理(ssh-agent)

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

Was this answer helpful?

« Back