linux SSH无密码登录设置 仍需输密码

来源:互联网 发布:足球关注分析软件 编辑:程序博客网 时间:2024/05/01 07:54

linux的SSH无密码登录实现思路其实是很简单的,就是如果你要从A机器上登录到B机器上,那么A机器就是客户端,B机器就是服务端,后面就是A,B两台机器

首先,需要现在A机器上生成一个钥匙对,即一个公钥,一个私钥 在A机器上执行 :ssh-keygen -t rsa  后面会提示你输入密钥文件名,密钥密码等等

可以不做输入,直接一路回车就行。

执行完后,会在你的用户目录下面,生成一个.SSH的隐藏文件夹,进入该文件夹:   cd /home/用户文件夹/.ssh

会看到有两个文件 分别是 id_rsa和id_rsa.pub  这是一个公钥和私钥密码对文件,现在需要的是把公钥文件,发给需要进行无密码验证登录的机器,这里是B,执行  scp id_rsa.pub b机器名@B用户名:~/   (注意:这里的“b机器名@B用户名”如果用这种格式,那么就需要在hosts文件中,添加B机器的ip地址和机器名的映射,如果没有添加映射关系,就需要换成B的机器名,后面的用户名是指需要把文件cop到哪个用户下)

然后登录到B机器上,把scp过来的公钥密码文件,cat到authorized_keys中,该文件需要在 B用户的/home/用户目录/.ssh下面。如果B上面没有执行ssh-keygen命令的话,需要手动创建该文件夹 然后 cat /home/用户文件夹/id_rsa.pub >> /home/用户文件夹/.ssh/authorized_keys

然后,修改B机器上的/etc/ssh/sshd_config 去掉

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

的注释,然后重启SSH  centos7的重启命令是 /bin/systemctl restart sshd.service。

然后回到A机器上,用 ssh b机器名@B用户名 验证是否能无密码登录  (第一次可能需要输入密码。) 如果不出意外,就能正常无密码进行登陆了。

但是 我的出意外了,这里仍然需要输入密码验证,网上搜了一下,原因最多就是用户权限的问题,处理以后,发现,我的也是权限问题!

SSH无密码登录需要的权限列表是

1:用户目录  即/home/hadoop的权限需要时755  这个权限一般是创建用户默认权限

2:.ssh目录权限是700

3:.ssh中的私钥权限是600,其余的是644

按照这个权限列表,在A和B机器上设置好以后,在进行SSH登录,就不需要密码啦




0 0
原创粉丝点击