centos ssh无密码登录 详解 不需要密码 多台相互 linux

一直纳闷为什么按照hadoop官方文档操作后,ssh localhost 仍然需要密码,原来如此

官方文档操作如下(单机伪集群)http://hadoop.apache.org/docs/r1.2.1/single_node_setup.html

Now check that you can ssh to the localhost without a passphrase:
$ ssh localhost

If you cannot ssh to localhost without a passphrase, execute the following commands:
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

这样配置之后,若umask 默认,则目录权限如下,这个没问题

drwx------.  2 reaper reaper 4096 Sep  2 23:36 .ssh

下面文件权限如下:

drwx------.  2 reaper reaper 4096 Sep  2 23:36 .
drwx------. 29 reaper reaper 4096 Sep  2 23:36 ..
-rw-rw-r--.  1 reaper reaper  614 Sep  2 23:36 authorized_keys
-rw-------.  1 reaper reaper  668 Sep  2 23:36 id_dsa
-rw-r--r--.  1 reaper reaper  614 Sep  2 23:36 id_dsa.pub

注意!!authorized_keys这个文件权限应该为600

chmod 600 ~/.ssh/authorized_keys

说白了,应该验证两个权限,因为每台机器umask可能不同

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

这样,再次ssh localshot 就没问题了,不需要密码。

分布部署时需要拷贝id_dsa.pub 文件 至 其他datanode 修改为authorized_keys,好的,到这里仅仅实现了单向

如果多台机器互相,请各自生成秘钥文件,并使用下列命令发送

ssh-copy-id -i ~/.ssh/id_dsa.pub "-p SSH_PORT_NUM USER_NAME@IP"

SSH_PORT_NUM 发送公钥目标服务器SSH端口号,默认22

USER_NAME 发送公钥目标用户名

IP 发送公钥目标IP

注意最后的ssh-copy-id 可能提示 /usr/bin/ssh-copy-id: ERROR: No identities found

请确认你的文件是否存在,公钥的生成算法不同最后文件默认产生名字也不同哦,可能是rsa/dsa



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值