使用证书登录到Linux

首先需要生成SSH密钥和公钥,这个步骤即可在客户端完成,也可以在服务端完成,在这里我们直接在服务端完成。 使用以下命令生成SSH密钥和公钥:

ssh-keygen -t rsa

根据提示选择保存的位置、设置密码生就会成功生成并显示最终的结果。 如果对安全强度有要求,可使用相应的参数:

-t rsa:指定密钥算法 RSA。
-b 4096:指定密钥的位数是4096位。安全性要求不高的场合,这个值可以小一点,但是不应小于1024。
-f ~/.ssh/user_ca:指定生成密钥的位置和文件名。
-C user_ca:指定密钥的识别字符串,相当于注释,可以随意设置。

例如,我们可使用一些参数:

ssh-keygen -t rsa -b 4096 -f ~/.ssh/user_ca -C user_ca

接下来我们需要将公钥添加到 ~/.ssh/authorized_keys 文件中,你可以使用vi完成,也可以直接cat追加:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

之后将密钥文件 ~/.ssh/id_rsa 下载到本地并保存备用 配置sshd_config文件,可以使用vim命令

vim /etc/ssh/sshd_config

修改以下项目:

PubkeyAuthentication yes                                   #允许公钥认证                    
AuthorizedKeysFile  ~/.ssh/authorized_keys       #指定包含用于用户身份验证的公钥的文件

#可以根据需要决定是否禁用root账户登录
PermitRootLogin no           #选项前面可以加#号注释掉,同样会禁用root用户

#可以根据需要决定是否禁用密码登录  
PasswordAuthentication no     #选项前面可以加#号注释掉,同样会禁用密码登录

 配置完比后重启一下ssh服务,使之生效:

systemctl restart sshd.service

接下来尝试用证书登录吧。

评论区

暂时没有评论。

发表新评论