一、Linux 设置秘钥登录
很多时候我们希望不用每次登录Linux服务器都要输入密码,那么这个时候可以选择ssh密钥登录,就是
rsa公钥放到服务器上
,私钥放在客户端上
,每次登录的时候,用密钥登录
;这样更方便也更安全
1.1 第一步
使用ssh-keygen -t rsa命令,生成一个rsa密钥对,一路回车即可。
默认生成的密钥文件在root/.ssh目录下。
[root@centos-004 ~]# 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:
SHA256:39+JYGiBNUXsWXWIZgDTkzBeY5hDOb39BT41B1DhyHY root@centos-004
The key's randomart image is:
+---[RSA 2048]----+
| .*OB=.+==.|
| .*=*+++o.+|
| .=.**.Eoo|
| o o+..o .|
| .S. . o |
| .o. . |
| o.o. |
| . . .....|
| ....|
+----[SHA256]-----+
[root@centos-004 ~]#
1.2 第二步
检查下.ssh目录下authorized_keys文件是否存在,没有的话,创建一个,然后将id_rsa.pub的内容追加到authorized_keys文件尾。
cd .ssh
touch authorized_keys ->如果ssh中存在此文件则省略此步骤
cat id_rsa.pub >> authorized_keys -> 将id_rsa.pub的内容追加到authorized_keys
1.3 第三步
修改
.ssh的权限为700
,authorized_keys的权限为600或者更严格的400
,否则登录的时候会提示server refuse you key。
cd ..
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
如果你要设置的用户不是root,比如是test之类的
那么你要设置的.ssh目录应该是 /home/test/.ssh, 并且要将.ssh目录和authorized_keys文件的文件所有者改为test,
否则还是登陆不了
chown -R git:git .ssh
1.4 第4步
修改下ssh的配置
[root@centos-004 .ssh]#vim /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys
这里有一点很重要,在你配置密钥登录成功之前,千万不要太自信将PasswordAuthentication 设置no,否则你密钥登录不了,然后又禁止密码登录,就悲剧了。在密钥登录设置成功之后,可以将PasswordAuthentication 设置为no,禁用密码登录了,比较安全。
1.5 第5步
将私钥文件id_rsa拷贝到你的客户端
如果你是要在windows上使用putty客户端登陆linux服务器
那么你还需要将这个私钥稍微转换一下
打开putty key generator 工具
File -> Load private key, 然后点save private key, 就转换完毕,window下私钥一般以.ppk后缀结尾,比如另存为id_rsa.ppk
二、示列
2.1 Linux上使用秘钥登录
把私钥
id_rsa文件
复制到客户机上,使用ssh root@172.30.78.39 -i id_rsa命令进行登录
[root@nkgcdssh01-lx .ssh]# ssh root@172.30.78.39 -i id_rsa
Last login: Thu Jul 4 09:30:21 2019 from 172.30.78.39
2.2 windows上使用第三方工具登录
首先把私钥
id_rsa文件
复制windows主机上。
这里使用MobaXterm登录。
勾选Use private key,然后选择你的id_rsa文件的位置