CentOS SSH无密码登录原理,配置以及常见问题
2015-12-28 16:49
519 查看
原理简介
为了便于理解,假设需要在hadoop148这台机器上可以通过无密码登录的方式连接到hadoop107上。首先在 hadoop148上生成一个密 钥对,包括一个公钥和一个私钥,并将公钥复制到hadoop107上。然后当 hadoop148通 过 SSH 连接hadoop107机器时, hadoop107机器 就会生成一个随机数并用 hadoop148的公 钥对随机数进行加密,并发送给 hadoop148。最后 hadoop148收到加密数之后再用私 钥解密,并将解密数回传给hadoop107, hadoop107确认解密数无误之后就允许 hadoop148不 输入密码进行连接了配置
具体步骤1 、 登录hadoop148,执行命令 ssh-keygen -t rsa 之后一路回 车,查看刚生成的无密码钥对: cd .ssh 后 执行 ll2 、把 id_rsa.pub 追加到授权的 key 里面去。 执行命令 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys3 、修改权限: 执行 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目录的权限必须是7002) 用户目录的权限必须是700,比如我是用root用户操作的,则/root的权限必须是700
3) .ssh/authorized_keys文件权限必须是600[b]第二步:查看安全上下文[/b]如果通过改变权限还不能解决问题,可以尝试如下方法:首先用ls -laZ检查了一下.ssh目录,果然不是ssh_home_t,则需要使用restorecon命令对.ssh目录的context进行恢复。命令是:restorecon -r -vv /root/.ssh第三步:分析/var/log/audit/audit.log日志[b]第四步:修改目录用户权限[/b][b]chown -R root.root /root[/b]
相关文章推荐
- Linux socket 初步
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- Linux Generating SSH Keys
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程
- 基于 Linux 集群环境上 GPFS 的问题诊断