使用证书登录到Linux()

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

使用以下命令生成SSH密钥和公钥:

ssh-keygen -t rsa

根据提示选择保存的位置、设置密码生就会成功生成并显示最终的结果。

如果对安全强度有要求,可使用相应的参数:

1 -t rsa:指定密钥算法 RSA。
2 -b 4096:指定密钥的位数是4096位。安全性要求不高的场合,这个值可以小一点,但是不应小于1024。
3 -f ~/.ssh/user_ca:指定生成密钥的位置和文件名。
4 -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

配置sshd_config文件,可以使用vi命令

vi /etc/ssh/sshd_config

修改以下项目:

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

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

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

systemctl restart sshd.service

最后将密钥文件下载到客户端 ~/.ssh/id_rsa

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

————————

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

使用以下命令生成SSH密钥和公钥:

ssh-keygen -t rsa

根据提示选择保存的位置、设置密码生就会成功生成并显示最终的结果。

如果对安全强度有要求,可使用相应的参数:

1 -t rsa:指定密钥算法 RSA。
2 -b 4096:指定密钥的位数是4096位。安全性要求不高的场合,这个值可以小一点,但是不应小于1024。
3 -f ~/.ssh/user_ca:指定生成密钥的位置和文件名。
4 -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

配置sshd_config文件,可以使用vi命令

vi /etc/ssh/sshd_config

修改以下项目:

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

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

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

systemctl restart sshd.service

最后将密钥文件下载到客户端 ~/.ssh/id_rsa

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