上一篇 下一篇 分享链接 返回 返回顶部

Linux服务器远程连接指南:SSH密钥对创建与免密登录

发布人:灰大王 发布时间:2025-03-23 15:29 阅读量:59

一、为什么使用SSH密钥对?

相比传统密码登录,SSH密钥对提供更高的安全性:

非对称加密:公钥加密数据,私钥解密,避免密码被暴力破解。

免密登录:配置后无需重复输入密码,提升运维效率。

权限可控:可限制仅允许密钥登录,禁用密码认证。

二、SSH密钥对生成与配置

步骤1:生成密钥对(本地操作)

在本地Linux/Mac终端或Windows WSL中执行:

ssh-keygen -t ed25519 -C "your_email@example.com"  # 推荐ed25519算法
# 或使用RSA算法(兼容旧系统):
# ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

# 按提示设置密钥保存路径(默认~/.ssh/id_ed25519)和密码(可选)

生成的文件:

私钥~/.ssh/id_ed25519(需严格保密,权限600)

公钥~/.ssh/id_ed25519.pub

步骤2:上传公钥到服务器

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

ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip
# 输入服务器密码后自动配置

方法二:手动上传

复制公钥内容:

cat ~/.ssh/id_ed25519.pub

登录服务器,将公钥追加到~/.ssh/authorized_keys

mkdir -p ~/.ssh
echo "粘贴公钥内容" >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys

步骤3:测试免密登录

ssh -i ~/.ssh/id_ed25519 user@server_ip
# 若提示密钥密码(创建时设置了),输入后即可登录

三、客户端工具配置指南

1. PuTTY(Windows)

转换密钥格式

打开PuTTYgen → Load私钥(选择所有文件类型)→ 保存为.ppk格式。

配置会话

Host Name:user@server_ip

Connection → SSH → Auth → 指定.ppk私钥路径

Session → Save保存配置,双击打开连接。

2. Xshell(Windows/Mac)

新建会话

名称:自定义,协议:SSH,主机:server_ip

身份验证

方法:Public Key

用户密钥:浏览 → 导入私钥文件(或转换后的.ppk)

连接后输入用户名即可登录。

3. FinalShell(跨平台)

新建SSH连接

名称:自定义,主机:server_ip,用户:username

密钥配置

认证方式:公钥

选择本地私钥文件路径(支持OpenSSH格式)

点击连接自动完成认证。

四、安全加固建议

禁用密码登录(服务器端):

sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config
sudo systemctl restart sshd

更改SSH默认端口

sudo vim /etc/ssh/sshd_config  # 修改Port字段

使用防火墙限制IP访问

五、常见问题排查

  • 连接被拒绝:检查服务器ssh服务状态(systemctl status sshd)、防火墙及端口。

  • 密钥权限错误:确保私钥权限为600,.ssh目录权限700。

  • 认证失败:确认公钥已正确追加到authorized_keys,无换行错误。

目录结构
全文