CentOS下SSH配置无密码登录

Posted tokendeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS下SSH配置无密码登录相关的知识,希望对你有一定的参考价值。

如果没有安装SSH服务,通过命令安装:

sudo apt-get install ssh
启动SSH服务:

service sshd restart
SSH无密码登录的原理如下

假设A机器想要通过SSH无密码登录访问B机器,则需要在A机器上生成一对秘钥(公钥+私钥),而后将公钥复制到B机器上;

当A机器通过SSH链接B机器时,B机器就会生成一个随机数,并且使用A机器的公钥(通过上一步拷贝,B机器上有A机器公钥的拷贝)对随机数进行加密,并把加密的“密文”回送给A机器;

A机器收到密文后,用自己的私钥解密,把解密后的“明文”(其实就是那个随机数)再回送给B机器;

B机器收到A机器发过来“明文”后,与自己拥有的那一份比对确认,当确认通过后允许A机器链接自己;

(整个过程是个公钥认证过程,无需密码输入,从SSH协议角度讲,A是客户端,B是服务器端)

所以,问题的关键就是,如何在A机器上生成密钥对,并且把公钥发到B机器。

配置步骤

第一:在A机器生成秘钥对

ssh-keygen -t rsa
则在/root/.ssh/目录下会有两个文件:id_rsa与id_rsa.pub

第二:把id_rsa.pub拷贝到本目录下一个名叫authorized_keys的文件

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
第三:分别设置.ssh目录和 authorized_keys文件的权限

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
上面操作完成后,则完成了A机器到本机(A机器)的SSH密码登录,现在要使A无密码SSH登录B,

第四:在B机器新建.ssh目录与authorized_keys文件,并且雷同第三步修改权限

第五:通过scp把A机器上的id_rsa.pub拷贝到B机器,并且追加到B机器的authorized_keys文件下

(完成上面步骤,则完成了A机器到B机器的无密码SSH登录)


当在一个由多台机器组成的集群中,我们想每两两之间都能实现SSH无密码登录,则可以规划上面的生成流程:

第一:在所有机器上生成秘钥对;

第二:迭代把自己的id_rsa.pub拷贝到其他机器,并且追加到authorized_keys文件;

以上是关于CentOS下SSH配置无密码登录的主要内容,如果未能解决你的问题,请参考以下文章

CentOS下SSH无密码登录的配置

CentOS配置ssh无密码登录

linux下怎样设置ssh无密码登录

CentOS系统实现SSH无密码登录的方法

CentOS 之间ssh无密码登录

linux下怎样设置ssh无密码登录