Linux秘钥:配置与管理
Linux系统中的秘钥(通常指SSH密钥)在远程登录和安全性管理中扮演着重要角色,本文将详细介绍SSH秘钥的生成、配置和管理方法,包括在不同平台(如Windows和Linux)下的使用示例。
一、SSH秘钥
SSH协议简介
SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络中安全地远程登录和其他网络服务,SSH使用公钥加密技术来保证数据传输的安全性。
公钥与私钥
公钥:公开的密钥,可以自由分发,用于加密数据。
私钥:保密的密钥,由用户自己保管,用于解密数据。
二、生成SSH密钥对
使用ssh-keygen命令
在Linux系统中,可以使用ssh-keygen
命令生成SSH密钥对,以下是详细步骤:
ssh-keygen -t rsa -b 4096
-t rsa
:指定使用RSA算法。
-b 4096
:指定密钥长度为4096位。
执行命令后,按提示操作即可完成密钥对的生成,默认情况下,密钥文件存储在~/.ssh
目录下,私钥文件名为id_rsa
,公钥文件名为id_rsa.pub
。
检查现有密钥
在生成新密钥之前,建议检查是否已有现有的SSH密钥对:
ls -al ~/.ssh
如果存在现有的密钥对,可以选择备份或删除现有密钥后再生成新的密钥。
三、配置SSH密钥登录
将公钥复制到远程服务器
使用ssh-copy-id
命令可以将本地公钥复制到远程服务器:
ssh-copy-id user@remote_server
系统会提示输入远程服务器的用户密码,成功后公钥将被追加到远程用户的authorized_keys
文件中。
手动复制公钥
如果没有ssh-copy-id
命令,也可以手动复制公钥:
cat ~/.ssh/id_rsa.pub | ssh user@remote_server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
修改sshd_config文件
在远程服务器上,确保SSH配置文件/etc/ssh/sshd_config
中启用了公钥认证:
sudo vim /etc/ssh/sshd_config
添加或修改以下内容:
PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication no
保存并退出后,重启SSH服务:
sudo systemctl restart sshd
四、使用SSH密钥登录
Linux客户端登录
在Linux客户端,可以使用以下命令登录远程服务器:
ssh user@remote_server
首次登录时可能会提示是否记住主机的公钥指纹,输入yes
确认即可。
Windows客户端登录
在Windows客户端,可以使用PuTTY等工具进行登录,以下是使用PuTTY登录的步骤:
打开PuTTY,输入远程服务器的IP地址。
在左侧树状菜单中选择“Connection” -> “Data”。
在“Auto-login username”字段中输入远程用户名。
在左侧树状菜单中选择“Connection” -> “SSH” -> “Auth”。
在“Private key file for authentication”字段中浏览并选择私钥文件(通常是.ppk
格式)。
点击“Open”按钮连接到远程服务器。
五、管理SSH密钥
更改权限
确保~/.ssh
目录及其下的权限正确:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys chmod 600 ~/.ssh/id_rsa
删除旧密钥
如果需要删除旧的密钥对,可以执行以下命令:
rm ~/.ssh/id_rsa ~/.ssh/id_rsa.pub
查看密钥指纹
可以使用以下命令查看公钥的指纹:
ssh-keygen -l -f ~/.ssh/id_rsa.pub
六、常见问题与解答
如何更改SSH端口号?
可以在/etc/ssh/sshd_config
文件中修改Port
参数,然后重启SSH服务:
sudo vim /etc/ssh/sshd_config
将Port 22
改为所需的端口号,例如Port 2222
,然后保存并退出,重启SSH服务:
sudo systemctl restart sshd
如何禁用密码登录?
在/etc/ssh/sshd_config
文件中设置PasswordAuthentication no
,然后重启SSH服务:
sudo systemctl restart sshd
这样就只能通过SSH密钥进行登录,而不能使用密码。
七、归纳
本文详细介绍了如何在Linux系统中生成、配置和管理SSH密钥对,以及在不同平台下使用SSH密钥进行登录的方法,通过合理配置和使用SSH密钥,可以有效提升系统的安全性和便捷性,希望本文能为您在实际操作中提供帮助和指导。
小伙伴们,上文介绍了“linux 秘钥”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1302909.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复