配置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
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
本文向大家介绍CentOS 配置无密码登录的实现,包括了CentOS 配置无密码登录的实现的使用技巧和注意事项,需要的朋友参考一下 CentOS 配置无密码登录 配置sshd服务 在服务器上修改/etc/ssh/sshd_config: <!-- lang: shell --> 重启sshd服务 生成rsa-keypair 切换到允许ssh登录的用户账户执行如下执行如下命令: <!-- lang:
本文向大家介绍Linux配置远程SSH无密码登录,包括了Linux配置远程SSH无密码登录的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了jaLinux配置远程SSH无密码登录的方法,供大家参考,具体内容如下 系统:CentOS 6.8 主机1:192.168.0.177 主机2:192.168.0.178 工具介绍: ssh-keygen:创建公钥和密钥 ssh-copy-id:把
本文向大家介绍CentOS下SSH无密码登录的配置文件,包括了CentOS下SSH无密码登录的配置文件的使用技巧和注意事项,需要的朋友参考一下 1、确认本机sshd的配置文件(需要root权限) 找到以下内容,并去掉注释符”#“ 2、如果修改了配置文件需要重启sshd服务 (需要root权限) 配置SSH无密码登录需要3步: 1.生成公钥和私钥 2.导入公钥到认证文件,更改权限 3.测试
我试图设置AWS Cognito用户池与无密码登录以下这篇文章。但是,条件之一是“只允许自定义身份验证”。但是我需要我的应用程序允许用户使用其他提供商(oAuth和SAML)和无密码登录。 如何确保用户不能以某种方式使用在上述过程中生成的随机密码登录?还是有不同的方法?
目前,我试图将我们的应用程序从WAS 8.0迁移到Liberty Profile。在我们的应用程序中,我需要在没有用户密码的情况下进行编程登录的可能性。在WAS 8.0中,这是通过以下代码段完成的: 不幸的是,在Liberty中不知道ContextManagerFactory类。所有使用自由配置文件进行编程登录的示例都使用WSCallbackHandlerImpl进行Jaas登录。但为此,我需要知
本文向大家介绍ubuntu16.04服务器配置ssh免密码登录,包括了ubuntu16.04服务器配置ssh免密码登录的使用技巧和注意事项,需要的朋友参考一下 在客户端操作 文件位置写/home/try/.ssh/server_rsa,不使用默认值,我命名为server_rsa担心影响到git的key(因为我的git使用的是默认值) ssh-copy-id root@123.45.56.78(你的