NFS结合SSH做免密登录

回复 收藏
NFS结合SSH做免密登录主要用于Hadoop集群间相互访问,当slave节点有很多的时候,我们更改公钥时,就需要手动下发每一个slave,几台还能忍受,几千上万台的下发,岂不是要把人弄废啊,虽然不复杂,但是数量大啊。。


一、NFS
1.安装
[root@kry132 ~]# yum -y install rpcbind nfs-utils
rpcbind:用于通信
nfs-utils:nfs程序

2.创建hadoop用户并设置密码
[root@kry132 ~]#  useradd hadoop
[root@kry132 ~]#  passwd hadoop

3.创建共享目录
[root@kry132 ~]# mkdir  /data/nfsdata
[root@kry132 ~]# chown hadoop.hadoop /data/nfsdata/

4.配置nfs
[root@kry132 ~]# vim /etc/exports
添加以下内容:
/data/nfsdata 192.168.0.135(rw,sync)

如果需要指定用户,还需要加入all_squash,anonuid=502,anongid=502。
注意服务端跟客户端用户的UID跟GID必须一致。比如服务端一个用户为abc,uid跟gid都为502,那么客户端也应该存在一个abc的用户,uid跟gid也为502.

5.启动服务
[root@kry132 ~]# /etc/init.d/rpcbind start
[root@kry132 ~]# /etc/init.d/nfs start

6.查看共享目录(客户端)
[root@Kry135 ~]# showmount -e 192.168.0.132
Export list for 192.168.0.132:
/data/nfsdata 192.168.0.135

二、ssh
1.安装ssh
[root@kry132 ~]# yum -y install openssh-server openssh-clients

2.配置
[root@kry132 ~]# vim  /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys


3.生成密钥
[root@kry132 ~]# ssh-keygen -t rsa

4.修改公钥
[root@kry132 ~]# cd  .ssh
[root@kry132 .ssh]# cat id_rsa.pub >>  authorized_keys
[root@kry132 .ssh]# chown hadoop.hadoop authorized_keys
[root@kry132 .ssh]# chmod 600 authorized_keys

5.将公钥放到NFS共享目录
[root@kry132 .ssh]# cp -p authorized_keys  /data/nfsdata/

三、客户端
1.安装ssh
[root@Kry135 ~]# yum -y install openssh-server openssh-clients

2.配置
[root@Kry135 ~]# vim  /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys


3.创建nfs共享目录
[root@Kry135 ~]# mkdir /data/nfsdata/
[root@Kry135 ~]#chown hadoop.hadoop /data/nfsdata/

4.挂载NFS共享目录
[root@Kry135 ~]# mount -t nfs 192.168.0.132:/data/nfsdata /data/nfsdata

5.创建公钥存放目录
[root@Kry135 ~]# mkdir /home/hadoop/.ssh
[root@Kry135 ~]# chown hadoop.hadoop /home/hadoop/.ssh/
[root@Kry135 ~]# chmod 700 /home/hadoop/.ssh/
注意:如果切换到hadoop用户操作就不需要更改用户所属主群主

6.创建软连接
[root@Kry135 ~]# ln -s  /data/nfsdata/authorized_keys  /home/hadoop/.ssh/authorized_keys

四、测试
1.关闭selinux
[root@Kry135 ~]# setenfore 0
[root@Kry135 ~]# vim /etc/selinux/config
SELINUX=permissive  或 disabled

注意:客户端也需要关闭,执行以上相同操作

2.配置NFS固定端口
[root@Kry135 ~]#vim /etc/service(端口号必须在1024以下,且未被占用)
mountd 1011/tcp #rpc.mountd
mountd 1011/udp #rpc.mountd
rquotad 1012/tcp #rpc.rquotad
rquotad 1012/udp #rpc.rquotad

重启nfs服务后,端口即固定了。
和nfs相关的端口有:
portmap 111
nfsd 2049
mountd 1011
rquotad 1012
注意:然后在服务端跟客户端配置iptables放行端口,如果只是测试直接关闭iptabls即可。

3.测试免密登录
[hadoop@kry132 ~]$ ssh hadoop@192.168.0.135
Last login: Thu Aug  4 18:08:31 2016 from slave.hadoop

4.测试免密传输文件
[root@kry132 ~]# su - hadoop
[hadoop@kry132 ~]$ scp test.txt hadoop@192.168.0.135:/home/hadoop/
test.txt                    100%   13     0.0KB/s   00:00  


测试登录跟文件传输都没有要求输入密码,说明NFS+SSH搭建成功!



扩展内容
1.nfs优化
vim /etc/init.d/nfs
[ -z "$RPCNFSDCOUNT" ] && RPCNFSDCOUNT=8
修改为
[ -z "$RPCNFSDCOUNT" ] && RPCNFSDCOUNT=32


默认的内核参数为:
cat /proc/sys/net/core/rmem_default
229376
cat /proc/sys/net/core/rmem_max
229376
cat /proc/sys/net/core/wmem_default
229376
cat /proc/sys/net/core/wmem_max
229376

修改为:
echo 262144 > /proc/sys/net/core/rmem_default - 最大的TCP数据接收缓冲
echo 262144 > /proc/sys/net/core/rmem_max -  最大的TCP数据发送缓冲
echo 262144 > /proc/sys/net/core/wmem_default - 默认的发送窗口大小
echo 262144 > /proc/sys/net/core/wmem_max - 发送窗口的最大大小







2016-08-08 14:17 举报
已邀请:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: