Linux系统ssh远程免密登录
在Linux运行过程中,有些特殊情况需要让不同Linux主机之间进行SSH免密登录,直观来看是免密登录,确切的说是通过秘钥验证登录。
一、实现原理
如A主机需要远程免密登录到B主机,那么需要在A主机上面通过工具生成秘钥对,即公钥和私钥。私钥用来解密,放置在A主机本地,公钥用来加密,放置在远端B主机。
二、示例
1、生成秘钥对
- 在A主机执行命令ssh-keygen -b 1024 -t rsa,无需更改参数,直接按几次回车即可。
[root@server ~]# 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 root@server 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主机的地址记录,某些情况下,我们通过清空此文件的方式解决登录失败的问题。
2、复制公钥文件
将id_rsa.pub该文件内容复制出来,粘贴到远端B主机/root/.ssh/authorized_keys文件中,默认authorized_keys文件并不存在,手动创建即可。
3、测试
无需输入密码即可登录
4、说明
此测试存在限制条件,被登录主机的ssh配置需要开启远程访问权限。