Linux系统ssh远程免密登录

  在Linux运行过程中,有些特殊情况需要让不同Linux主机之间进行SSH免密登录,直观来看是免密登录,确切的说是通过秘钥验证登录。

一、实现原理

如A主机需要远程免密登录到B主机,那么需要在A主机上面通过工具生成秘钥对,即公钥和私钥。私钥用来解密,放置在A主机本地,公钥用来加密,放置在远端B主机。

二、示例

1、生成秘钥对

  • 在A主机执行命令ssh-keygen -b 1024 -t rsa,无需更改参数,直接按几次回车即可。
[ ~]# ssh-keygen -b 1024 -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:
b3:9d:90:f8:60:66:45:72:c1:2f:8f:ea:32:80:b6:4c 
The key‘s randomart image is:
+--[ RSA 1024]----+
|      ..+.       |
|       +.        |
|        ..       |
|       o...      |
| .    * S+       |
|.E.  + o.=..     |
|+ ..   .o o      |
| o  o .          |
|     +.          |
+-----------------+
  • 参数说明:

-t [rsa|dsa]  指定要创建的密钥类型。可以使用:"rsa1"(SSH-1) "rsa"(SSH-2) "dsa"(SSH-2),我们选的rsa

-b 1024   指定密钥长度。对于RSA密钥,最小要求768位,默认是2048位。DSA密钥必须恰好是1024位(FIPS 186-2 标准的要求)。

  • 此操作会在/root/.ssh/目录下产生一对秘钥,id_rsa为私钥,id_rsa.pub为公钥文件,另外known_hosts是A主机已经登录过的远端ssh主机的地址记录,某些情况下,我们通过清空此文件的方式解决登录失败的问题。

Linux系统ssh远程免密登录

2、复制公钥文件 

将id_rsa.pub该文件内容复制出来,粘贴到远端B主机/root/.ssh/authorized_keys文件中,默认authorized_keys文件并不存在,手动创建即可。

3、测试

无需输入密码即可登录

Linux系统ssh远程免密登录

 4、说明

此测试存在限制条件,被登录主机的ssh配置需要开启远程访问权限。

相关推荐