CentOS SSH无密码登录的配置_Linux

配置SSH无登陆验证,在很多场景下是非常方便的,尤其是在管理大型集群服务时,避免了繁琐的密码验证,在安全级别越高的服务器上,通常密码的设置更复杂,配置SSH,不仅可以用密钥保证节点间通信的安全性,同时也降低了频繁输入密码登陆的耗时,大大提高了管理效率。

原理简介

为了便于理解,假设需要在hadoop148这台机器上可以通过无密码登录的方式连接到hadoop107上。

首先在 hadoop148上生成一个密钥对,包括一个公钥和一个私钥,并将公钥复制到hadoop107上。

然后当 hadoop148通过SSH连接hadoop107机器时, hadoop107机器 就会生成一个随机数并用 hadoop148的公 钥对随机数进行加密,并发送给 hadoop148。

最后 hadoop148收到加密数之后再用私 钥解密,并将解密数回传给hadoop107, hadoop107确认解密数无误之后就允许hadoop148不 输入密码进行连接了

配置

具体步骤

1 、 登录hadoop148,执行命令 ssh-keygen -t rsa 之后一路回 车,查看刚生成的无密码钥对: cd .ssh 后 执行 ll

2 、把 id_rsa.pub 追加到授权的 key 里面去。 执行命令 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys

3 、修改权限: 执行 chmod 600 ~/.ssh/authorized_keys

常见问题

问题现象:

hadoop148机器已经生产rsa密钥

且已经将public key添加到serverB机器/root/.ssh/authorized_keys

但是ssh root@hadoop107机器时仍然需要输入密码,即无密码认证失败,

分析与处理: 

第一步:查看权限

用ssh -v debug访问,日志如下,但是从日志看不到失败原因,只知道在用publickey认证时,对端没有reply;

再查看/var/log/secure日志

发现所有用户的HOME目录应该是700权限,否则会引起很多问题,这个问题同样是由于这个原因

最终,执行chmod 700 root后解决

关于权限问题总结如下:

1) .ssh目录的权限必须是700

2) 用户目录的权限必须是700,比如我是用root用户操作的,则/root的权限必须是700

3) .ssh/authorized_keys文件权限必须是600

第二步:查看安全上下文

如果通过改变权限还不能解决问题,可以尝试如下方法:

首先用ls -laZ检查了一下.ssh目录,果然不是ssh_home_t,则需要使用restorecon命令对.ssh目录的context进行恢复。命令是:restorecon -r -vv /root/.ssh

第三步:分析/var/log/audit/audit.log日志

修改目录用户权限

chown -R root.root /root

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

时间: 2024-10-04 16:37:49

CentOS SSH无密码登录的配置_Linux的相关文章

CentOS下SSH无密码登录的配置文件_Linux

1.确认本机sshd的配置文件(需要root权限) $ gedit /etc/ssh/sshd_config 找到以下内容,并去掉注释符"#" RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys 2.如果修改了配置文件需要重启sshd服务 (需要root权限) $ /sbin/service sshd restart 配置SSH无密码登录需要3步: 1.生成公钥和私

Linux配置远程SSH无密码登录_Linux

本文实例为大家分享了jaLinux配置远程SSH无密码登录的方法,供大家参考,具体内容如下 系统:CentOS 6.8 主机1:192.168.0.177 主机2:192.168.0.178工具介绍:ssh-keygen:创建公钥和密钥 ssh-copy-id:把生成的公钥复制到192.168.0.178主机上的authorized_keys文件上, ssh-copy-id也会给远程主机的用户主目录(/home)和/root/.ssh和/root/.ssh/authorized_key设置合适的

ssh无密码登录问题

ssh无密码登录配置: cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak vi /etc/ssh/sshd_config 重启sshd /etc/rc.d/init.d/sshd restart cat ~/id_rsa.pub >> /root/.ssh/authorized_keys chmod 644 ~/.ssh/authorized_keys ssh root@192.168.82.3 cat id_rsa.pub >> a

如何设置 Ubuntu14.04 的 SSH 无密码登录

如何设置 Ubuntu14.04 的 SSH 无密码登录 大家好,今天我来向大家介绍如何在 Ubuntu12.04 上设置 SSH 的无密码登录功能.仅在工作站上有正确的(公私)密钥对以供匹配时SSH服务端才会允许你登录,反之访问将不会被允许. 正常情况下,我们需要连上SSH的控制台输入用户名及其密码才行.如果两者全部正确,我们就可以访问,反之访问被服务端拒绝.不过相比而言还有一种比用密码更安全的登录方式,我们可以在登录SSH时通过加密密钥进行无密码登录. 如果你想启用这个安全的方式,我们只需简

搭建hadoop集群为什么要设置SSH无密码登录?

问题描述 搭建hadoop集群为什么要设置SSH无密码登录? 解决方案 解决方案二:集群之间的调度需要.如:俩台服务器001和002.001执行重启的shell后002也要重启.这时候要通过ssh调用002的重启shell

如何实现 ssh 无密码登录

如何实现 ssh 无密码登录 假设你是hostA上的一个用户"aliceA",想以用户"aliceB"的身份ssh到hostB上,但又不想输入密码.那么,你可以参考这篇教程实现ssh无密码登录. 首先,你需要以用户"aliceA"的身份登录到hostA上. 然后,使用ssh-keygen生成一对rsa公私钥,生成的密钥对会存放在~/.ssh目录下. $ ssh-keygen -t rsa 接下来,使用下面的命令在目标主机hostB上的aliceB

CISCO路由器TELNET和SSH远程登录的配置实例

一.TELNET远程登录配置 1.配置CISCO路由器上登录账号.口令.账号级别,如下所示,账号名abc.口令为abc123.账号级别为15(最高级别) R1#configure terminal R1(config)#username abc privilege 15 secret abc123 R1(config)#end R1# 2.配置CISCO路由器远程登录认证机制,如下所示,配置路由器本地认证 R1#configure terminal R1(config)#line vty 0 4

linux ssh 别名登录小技巧_Linux

为了方便登录服务器,我们一般使用putty.SecureCRT等等工具.在终端如何通过服务器别名来进行登录呢? 可以创建~/.ssh/config 文件并为每台服务器指定登录信息和验证方法,如下所示: $ vim ~/.ssh/config Host www HostName www.ttlsa.com Port 22 User root IdentityFile ~/.ssh/id_rsa.pub IdentitiesOnly yes Host bbs HostName 115.28.45.1

Spark集群部署时SSH无密码登录问题

问题描述 我们是2台电脑各自装了一个VMware的虚拟机,里面是Ubuntu的系统进行操作,Spark集群一个是Master,一个是Slave1,在设置SSH无密码登陆时,Slave1把公钥发给Master时会出现:rootMaster'spassward,然后输入密码后出现:Persiondenied,pleasetryagain.这并不是密码错误的提示,而是权限不够的提示,按照网上改权限也没有效果,这是为什么需要怎么修改? 解决方案 解决方案二:不是应该将master的公钥发给slave吗解