linux服务器通过生成ssh密钥来登录

admin2023-01-181418

一、生成ssh公钥和私钥。

[root@MyServer ~]# ssh-keygen -t rsa    //生成命令
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):     //设置存放目录,一般不用设置,就当前目录
Enter passphrase (empty for no passphrase):     //使用公钥时的密码验证,一般不用,用公钥已经很安全了,没必要再加密码
Enter same 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:
24:6e:83:70:7c:d6:83:c0:c0:f5:c5:00:be:51:2d:cc root@MyServer
The key's randomart image is:
+--[ RSA 2048]----+    //加密方式为RSA 2048

此时当前目录下多了个.ssh目录,目录里面有公钥和私钥两个文件,该目录为隐藏目录,输入"ll -a"命令才能看见。

[root@MyServer .ssh]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys    //把公钥内容复制一份到authorized_keys文件。
[root@MyServer .ssh]# ls
authorized_keys  id_rsa  id_rsa.pub

然后修改新生成文件的权限

[root@MyServer .ssh]# chown -R 700 ~/.ssh/
[root@MyServer .ssh]# chown -R 600 ~/.ssh/authorized_keys

二、通过xshell用私钥链接服务器。

1、先用ftp把生成的私钥(id_rsa)下载到本地电脑,然后服务器上的id_rsa和id_rsa.pub就可以删除了,有authorized_keys即可。

2、修改连接方式,修改为public key方法。

QQ截图20180429225228.jpg

3、导入私钥,浏览=》导入=》确定。

QQ截图20180429225420.jpg

确定保存,一般情况下就可以用密钥登录了。

如果你在登陆的时候遇到了「所选的用户密钥未在远程主机上注册。请再试一次」提示,请按照下面方式配置。

三、配置sshd_config文件。

vim /etc/ssh/sshd_config

打开该文件后找到如下内容,去掉前面注释。

StrictModes no    //yes改成no,允许使用自己生成的密钥来登录
RSAAuthentication yes 
PubkeyAuthentication yes 
AuthorizedKeysFile    .ssh/authorized_keys    //这里定义了上面生成公钥的时候为什么要命名成authorized_keys

然后保存文件,重启sshd服务。

service sshd restart

这样就可以用密钥来登录服务器了。

ps:该文件其他常用选项的说明:

PermitRootLogin no  #禁止root用户登录
PasswordAuthentication no #禁止密码方式登录

在成功设置密钥登录后最好禁用上面两项,确定成功前先不要禁用,以免密钥登录失败,连账户密码都登录不了,那就惨了。

网友评论