服务器配置SSH密钥登陆
使用 SSH 密钥登录服务器是一种安全高效的身份验证方法,它通过密钥对代替密码来增强安全性。以下是设置和使用 SSH 密钥登录服务器的步骤:
步骤 1:本地生成 SSH 密钥对
在本地机器上生成密钥对:
1
ssh-keygen -t rsa -b 4096 -C "[email protected]"
-t rsa
: 指定密钥类型为 RSA。-b 4096
: 设置密钥长度为 4096 位。-C "[email protected]"
: 添加一个注释(可选,用于标识密钥)。
在提示时指定密钥文件的保存路径(默认
~/.ssh/id_rsa
)和密码短语(可选,但推荐设置以提高安全性)。以上命令会生成3个文件:
id_rsa
: 私钥(不要公开)id_rsa.pub
: 公钥(上传服务器)known_hosts
: 远程服务器的公钥指纹文件
步骤 2:将公钥复制到服务器
使用以下命令将公钥复制到服务器(推荐):
1
ssh-copy-id username@server_ip
- 替换
username
为服务器的用户名,server_ip
为服务器的 IP 地址。 - 系统会提示输入服务器的密码,公钥将自动添加到服务器的
~/.ssh/authorized_keys
文件中。
- 替换
如果无法使用
ssh-copy-id
,可以手动将公钥复制到服务器:- 查看公钥内容:
1
cat ~/.ssh/id_rsa.pub
- 登录服务器:
1
ssh username@server_ip
- 在服务器上创建
.ssh
目录(如不存在)并设置权限:1
2mkdir -p ~/.ssh
chmod 700 ~/.ssh - 将公钥追加到
authorized_keys
文件:1
2echo "your-public-key-content" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
- 查看公钥内容:
步骤 3:测试 SSH 密钥登录
- 使用以下命令测试:
1
ssh username@server_ip
- 如果配置正确,应该无需输入密码即可登录(若设置了密码短语,则需输入短语)。
步骤 4:禁用密码登录(可选,增强安全性)
- 编辑服务器的 SSH 配置文件:
1
sudo vi /etc/ssh/sshd_config
- 确保以下设置:
1
2PasswordAuthentication no
PubkeyAuthentication yes - 重启 SSH 服务:
1
sudo systemctl restart sshd
注意事项
- 始终为私钥设置适当的权限(本地):
chmod 600 ~/.ssh/id_rsa
。 - 确保本地和服务器的
.ssh
目录及相关文件权限正确。 - 在禁用密码登录前,确认 SSH 密钥登录无误,否则可能导致无法访问服务器。
相关文章