准备工作
在使用SSH证书免密码登录Linux之前,我们需要完成以下几个步骤:
1、在本地计算机上生成SSH密钥对(公钥和私钥)。
2、将公钥上传到远程Linux服务器的authorized_keys文件中。
3、确保远程Linux服务器的SSH配置允许使用密钥认证。
生成SSH密钥对
1、打开终端,输入以下命令生成SSH密钥对(如果已经生成过,可以跳过此步骤):
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-t
表示密钥类型,这里选择rsa
;-b
表示密钥长度,推荐使用4096位;-C
表示注释,可以使用你的邮箱地址。
2、按提示设置密钥文件的保存路径和名称,以及密码短语(可选),如果不设置密码短语,直接按回车键即可。
3、生成密钥对后,会在指定路径下生成两个文件:id_rsa
(私钥)和id_rsa.pub
(公钥),将公钥内容复制到剪贴板。
上传公钥到远程服务器
1、使用ssh-copy-id
命令将公钥上传到远程Linux服务器:
ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote_host
user
是远程服务器上的用户名,remote_host
是远程服务器的IP地址或域名,如果使用非默认端口,需要添加-p
参数和端口号,-p 2222
。
2、输入远程服务器的密码进行验证,成功后,会提示公钥已成功添加到远程服务器的授权文件中。
测试免密码登录
1、使用Putty或其他SSH客户端连接到远程Linux服务器,在连接时,会提示输入用户名和密码,此时尝试不输入密码,直接按回车键进行登录,如果一切正常,你应该可以免密码登录到远程Linux服务器了。
配置SSH服务自动登录
为了让每次开机后都能自动免密码登录到远程Linux服务器,我们可以将公钥添加到远程服务器的~/.ssh/authorized_keys
文件中(如果没有该文件,需要手动创建),确保SSH配置文件(通常位于/etc/ssh/sshd_config
)中的以下设置是启用的:
PubkeyAuthentication yes PasswordAuthentication no
常见问题与解答
问题1:为什么我在执行ssh-copy-id
命令时遇到了“Permission denied”错误?
答:这个问题通常是由于目标用户不存在或者SSH权限不足导致的,请确保你使用的用户名是正确的,并且具有在目标服务器上执行操作的权限,如果仍然遇到问题,可以尝试使用管理员权限运行ssh-copy-id
命令,sudo ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote_host
。
问题2:我忘记了远程Linux服务器的密码,怎么办?
答:如果你忘记了远程Linux服务器的密码,可以尝试使用密码重置功能来恢复,具体方法因服务器提供商而异,通常需要在服务器管理面板中进行操作,如果无法通过密码重置功能找回密码,可能需要联系服务器提供商的技术支持以获取帮助。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/150518.html