您的位置:首页 > 运维架构 > Linux

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

2013-09-03 14:40 525 查看
一直纳闷为什么按照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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: