Linux通过密钥对免密登录


首先,说明一下我们要做的是,跳板机服务器的usera用户免密码登录B服务器的 userb用户。
我们先使用usera登录跳板服务器

首先生成密钥对如果有则跳过这一步

ssh-keygen -t rsa

操作演示

 [sera@serverA ~]$ ssh-keygen -t rsa  //使用rsa算法加密
 Generating public/private rsa key pair.
 Enter file in which to save the key (/home/usera/.ssh/id_rsa): //私钥默认保存路径
 Created directory '/home/usera/.ssh'.
 Enter passphrase (empty for no passphrase): //在这里输入密码如果这里输入密码以后登录需要密钥和密码才能登录这里建议直接回车也就是空
 Enter same passphrase again:
 Your identification has been saved in /home/usera/.ssh/id_rsa.
 Your public key has been saved in /home/usera/.ssh/id_rsa.pub. //公钥保存路径
 The key fingerprint is:
 39:f2:fc:70:ef:e9:bd:05:40:6e:64:b0:99:56:6e:01 usera@serverA
 The key's randomart image is:
 +--[ RSA 2048]----+
 | Eo* |
 | @ . |
 | = * |
 | o o . |
 | . S . |
 | + . . |
 | + . .|
 | + . o . |
 | .o= o. |
 +-----------------+

以下是图片提示

id_rsa是私钥,id_rsa.pub是公钥公钥在服务器私钥在自己手上

此时会在/home/usera/.ssh目录下生成密钥对我们使用ls查看一下

root@vultr:~#  ls -la .ssh
total 16
drwx------ 2 root root 4096 Mar 26 18:01 .
drwx------ 5 root root 4096 Mar 26 18:00 ..
-rw------- 1 root root 1675 Mar 26 18:01 id_rsa
-rw-r--r-- 1 root root  398 Mar 26 18:01 id_rsa.pub

然后将公钥上传到需要登录的服务器,并以userb用户登录
至于上传方式可以用scp以及sz命令这里就介绍了
可以参考这篇文章

上传到用户目录下的.ssh文件夹下authorized_keys这个文件是用来存放公钥内容的我们使用cat把公钥追加到authorized_keys这个文件就好了

cat id_rsa.pub >> ~/.ssh/authorized_keys    //cat 公钥路径 >> ~/.ssh/authorized_keys

这样子我们就配置好了
另外我们要注意,.ssh目录的权限为700,其下文件authorized_keys和私钥的权限为600。否则会因为权限问题导致无法免密码登录。我们可以看到登陆后会有known_hosts文件生成。

声明:小小博客|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - Linux通过密钥对免密登录


Carpe Diem and Do what I like