服务器密钥登录是一种通过公钥和私钥进行身份验证的安全机制,相较于传统的密码登录方式,它提供了更高级别的安全性,本文将详细介绍服务器密钥登录的实现步骤,包括密钥生成、配置和使用。
一、密钥生成与安装
密钥登录的第一步是生成密钥对,包括一个公钥和一个私钥,以下是生成密钥对的命令:
ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"
执行该命令后,会提示你输入文件名保存密钥(默认为~/.ssh/id_rsa
),并要求输入密钥锁码(passphrase),密钥锁码可以增加额外的安全性,但也可以留空,成功生成密钥对后,你会看到类似如下的信息:
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): [Press Enter] Enter passphrase (empty for no passphrase): [Enter Passphrase] Enter same passphrase again: [Enter Passphrase Again] Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: 0f:d3:e7:1a:1c:bd:5c:03:f1:19:f1:22:df:9b:cc:08 root@host
在用户的主目录下会生成两个文件:id_rsa
(私钥)和id_rsa.pub
(公钥)。
二、安装公钥至服务器
将公钥复制到远程服务器的用户目录下是下一步,你可以使用ssh-copy-id
命令来完成这一操作:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@remote_host
或者手动复制:
cat ~/.ssh/id_rsa.pub | ssh root@remote_host 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'
确保服务器上的authorized_keys
文件权限正确:
chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh
三、配置SSH服务
编辑SSH配置文件/etc/ssh/sshd_config
,启用公钥认证并禁用密码认证(可选):
RSAAuthentication yes PubkeyAuthentication yes PasswordAuthentication no PermitRootLogin yes ChallengeResponseAuthentication no UsePAM yes
保存文件后,重启SSH服务:
systemctl restart sshd
四、使用密钥登录
现在你可以使用私钥登录远程服务器:
ssh -i ~/.ssh/id_rsa root@remote_host
如果你使用的是PuTTY等工具,需要将私钥转换为相应的格式,使用PuTTYGen加载私钥,然后保存为PuTTY可用的格式。
五、常见问题与解答
问题1:如何更改SSH端口号?
答:可以通过修改/etc/ssh/sshd_config
文件中的Port
参数来更改SSH端口号,将端口号改为2222:
Port 2222
然后重启SSH服务:
systemctl restart sshd
之后,使用新端口号登录:
ssh -p 2222 -i ~/.ssh/id_rsa root@remote_host
问题2:如何同时允许密码和密钥登录?
答:可以在/etc/ssh/sshd_config
文件中同时启用密码认证和公钥认证:
RSAAuthentication yes PubkeyAuthentication yes PasswordAuthentication yes
保存文件后,重启SSH服务:
systemctl restart sshd
这样,用户既可以通过密码登录,也可以通过密钥登录。
各位小伙伴们,我刚刚为大家分享了有关“服务器的密钥登陆”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1356629.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复