搭了3台CentOS6.5的虚拟机:centos1、centos2、centos3。为了操作方便,准备设置这3台机器之间可以能过SSH免密码登录。SSH免密码登录的设置如下:


SSH免密码登录设置:

1、3台机器生成密钥:

ssh-keygen -t rsa -P ""
执行上面的命令,一直回车就可以。一般情况下,在用户的根目录下的.ssh目录下会生成私钥和公钥文件。

2、centos1机器上执行,设置免密码登录验证文件:

cat  /root/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 

将本机的公钥写入到验证文件中。

3、测试一下本机是否可以免密码登录:

ssh localhost #测试免密码登录本机

问题描述:

然后,问题就来了,仍然需要我提供密码才能登录,这不科学,因为以上步骤我在Ubuntu系统下用过,是成功的。而且,以上步骤我也在公司的服务器(CentOS6.5)上用过,也是成功的。


在网上找了很久,试过好多方法,最后问题解决了,现在将解决方法梳理的结果记录下来,希望能帮到和我一样遇到这问题的朋友。


解决方法:

1、修改SSH的相关配置,启动密钥登录及设置验证文件路径:

vi /etc/ssh/sshd_config
将下面的内容放开,也就是去掉注释。

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
其实我觉得这一步,并不重要,因为去掉的这些注释本身就是默认值。但是我是先这样做的,并没有进一步验证这一步是否必须。这一步可以不做,直接跳到下一步,如果下一步没解决问题,那么再来完成这一步的设置。因为步骤没有先后顺序。

2、修改安全配置,centos6.5对网络管理相当严格,需要在原来的基础上关闭selinux。

vi /etc/selinux/config
修改内容如下:

把SELINUX=enforcing修改为SELINUX=disabled
这一步完成后,问题就解决得妥妥的。


Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐