解决ssh无密码登录不成功的问题

把ssh设置为无密码登录很简单,只需两步:

1、在本地创建公钥和私钥:

ssh-keygen -t rsa

2、然后把公钥上传到远程机器上:

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.41.132

正常情况下经这两步设置就可无密码登录了:

ssh 192.168.41.132

可是今碰到的问题是仍要输入密码,网上找了找资料,有说要 restorecon ,也有说要 chmod ,最终在 /var/log/audit/audit.log 中发现了问题:

# cat /var/log/audit/audit.log
...
type=AVC msg=audit(1417198093.916:14807): avc:  denied  { search } for  pid=1977 comm="sshd" name="/" dev=vdb1 ino=2 scontext=system_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:file_t:s0 tclass=dir
...

这里报了 avc:  denied  { search } 的错误,属于SELinux安全性问题,解决该问题的方法是:

1、把 /var/log/audit/audit.log 文件中报错的行拷贝到临时文件 /tmp/error.txt :

# grep "avc:  denied  { search }" /var/log/audit/audit.log > /tmp/error.txt

2、执行下面的命令让系统自己找原因:

# audit2why -i /tmp/error.txt
type=AVC msg=audit(1417198093.916:14807): avc: denied { search } for pid=1977 comm="sshd" name="/" dev=vdb1 ino=2 scontext=system_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:file_t:s0 tclass=dir

  Was caused by:
    Missing type enforcement (TE) allow rule.

You can use audit2allow to generate a loadable module to allow this access.

3、按上面命令的输出说明,执行:

# audit2allow -i /tmp/error.txt -M local
******************** IMPORTANT ***********************
To make this policy package active, execute:

semodule -i local.pp

4、按上面命令的输出说明,执行:

semodule -i local.pp

这样就解决了 avc:  denied  { search } 问题。

解决掉这个问题后,再执行ssh登录仍然需要输入密码。为此又查看了 /var/log/audit/audit.log 文件尾部,新发现了 avc:  denied  { getattr } 报错,解决方法同上面的1-4步。解决掉这两个报错后就可无密码登录了。

时间: 2024-10-10 03:11:47

解决ssh无密码登录不成功的问题的相关文章

ssh无密码登录设置失败的 解决办法

因为要安装hadoop所以需要设置ssh无密码登录,SSH的安装就不在这里介绍了: 我的系统是ubuntu15.10,开始按照网上很多的步骤去配置,最后发现登录时还要密码,登录多次也是这样的情况 最后在网上搜素很多资料解决了这个问题.因此记录下来,看看能否帮助也遇到这样问题的同学. 下面介绍具体配置步骤: 首先输入命令: [email protected]:~$ ssh-keygen -t rsa 此命令是生成公私密钥的,然后有提示你保存这些密钥的路径,直接回车,默认的路径就行(~/.ssh,这

ssh无密码登录设置方法以及出现问题 ECDSA host key 和IP地址对应的key不同的解决

最近在做hadoop,因为要求各主机之间的用户必须相同,且为方便远程登录,需配置无密码登录 先附上ssh无密码登录设置方法: 先生成密钥并配置无ssh无密码登录本机,输入命令: ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 将文件拷贝到其他主机相同的文件夹内,输入命令: scp authorized_keys hostname1:~/.ssh/ scp autho

Ubuntu13.1+VMware Tools+hadoop1.2.1+sublime Text2+jdk1.8.0+ssh无密码登录全解

从4月28号搭建hadoop平台,到今天已经足足5天了,不断地改配置,敲命令,可以说真是人生一大快事吗?好了废话不多说,正式进入我的安装过程: 目录: 第一篇:Ubuntu13.1安装 第二篇:Sublime Text2安装 第三篇:hadoop+jdk1.8.0安装+ssh无密码登录 第四篇:出现的问题及解决办法(见另一篇博客) 正文: 第一篇: 我用的是Ubuntu13.1,大家可以到我的云盘下载,下面是链接: http://yunpan.cn/cjdvW5Abzap3I  访问密码 d13

CentOS配置ssh无密码登录

前提配置:使用root登录修改配置文件:/etc/ssh/sshd_config,将其中三行的注释去掉,如下: 然后重启ssh服务:service sshd restart.最后退出root,以下所有操作都在hadoop用户下进行. 主机信息如下: 如上图,当前登录用户为hadoop,主机名为slave.hadoop,与master.hadoop主机的网络是通畅的. 当前未配置RSA校验的情况下,用ssh连接主机是需要输入密码的,如下: 如上图,执行ssh master.hadoop后会停留在下

Linux实现SSH无密码登录(对目录权限的设置非常详细,可以参考一下)

假设服务器IP地址为192.168.1.1,机器名:cluster.hpc.org 客户端IP地址为172.16.16.1,机器名:p470-2.wangrx.sioc.ac.cn 客户端用户yzhao需要使用ssh无密码登录服务器的zhaoy帐户 实现原理 使用一种被称为"公私钥"认证的方式来进行ssh登录. "公私钥"认证方式简单的解释是 首先在客户端上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub: 私钥文件:~/.ssh/id_rsa) 然后

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

一.环境配置 1.服务端:CentOS release 5.3 IP:222.73.115.198 2.客服端:CentOS release 5.8 IP:192.168.4.244 二.配置SSH无密码登录需要3步: 1.生成公钥和私钥 2.导入公钥到认证文件,更改权限 3.测试 三.客户端配置 1.在客户端生成私钥与公钥: # ssh-keygen [[email protected] ~]# ssh-keygen Generating public/private rsa key pair

Hadoop之——CentOS配置ssh无密码登录注意事项

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46388809 前提配置:使用root登录修改配置文件:/etc/ssh/sshd_config,将其中三行的注释去掉,如下 然后重启ssh服务:service sshd restart.最后退出root,以下所有操作都在hadoop用户下进行. 主机信息如下: 如上图,当前登录用户为hadoop,主机名为slave.hadoop,与master.hadoop主机的网络是通畅的.

CentOS, 快速设置ssh无密码登录

首先,保证可以ping通 然后执行如下命令, master登录slave master上面执行如下指令: 2.4 确认本机sshd的配置文件(root) $ vi/etc/ssh/sshd_config 找到以下内容,并去掉注释符"#" RSAAuthenticationyes PubkeyAuthenticationyes AuthorizedKeysFile.ssh/authorized_keys 2.5 如果修改了配置文件需要重启sshd服务(root) $ vi/sbin/se

Centos 7 SSH 无密码登录

Centos 7 SSH 无密码登录 Centos7 SSH 无密码登录 需求 本人购买的阿里云 ECS, 用来做一些技术训练与部署自己开发的应用,所以要经常通过 SSH 连接到服务器进行应用部署与维护. 虽然 xshell 有 用户名/密码 加密保存的功能,但个人更喜欢 putty(没有多余的功能,专注工作),而且 xshell 没有 mac 版. 所以,迫切需要有一种方法能够免密码登录到云服务器,而且随处可用 方案 使用"公私钥"认证的方式来进行ssh登录 原理 客户端上创建一对