Linux 设置秘钥登录

一、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文件的位置


在这里插入图片描述

  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

书香水墨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值