完成后下一步,这里保存了私钥地址和文件名。建议将这个名字改一改,因为生成多个用户的密钥的时候方便识别,而且放在U盘里随身携带的时候也好认识,例如把原来的"Identity"改写成"PubKey_TMaster_Hadoop"。
498)this.width=498;'' onmousewheel = ''javascript:return big(this)'' alt="" src="/uploadfile/201301/12/EE121628837.png" />
到此为止,使用客户端 SecureCRT 生成密钥已经完成。接下来,就是要将密钥文件上传至服务器端,并在服务器端导入密钥。
第一步:在需要配置的用户根目录下创建.ssh目录并设置一定的权限。本次在一般用户(hadoop)下面进行。
498)this.width=498;'' onmousewheel = ''javascript:return big(this)'' alt="" src="/uploadfile/201301/12/88121628372.png" />
如上图所示通过下面命令建立了.ssh目录,并且修改了其权限。
- # mkdir /root/.ssh
- # chmod 700 /root/.ssh
第二步:采用Hadoop集群建立VSFTP服务器,通过FTP把我们的公钥上传上去,当然你可以通过U盘把公钥拷贝到服务器上。此次我们采用FTP的方式。
498)this.width=498;'' onmousewheel = ''javascript:return big(this)'' alt="" src="/uploadfile/201301/12/99121628511.png" />
然后通过SecureCRT查看文件是否已经上传。
498)this.width=498;'' onmousewheel = ''javascript:return big(this)'' alt="" src="/uploadfile/201301/12/0E121628728.png" />
从上图中我们知道已经上传了。
第三步:用上传的公钥生成authorized_keys文件并设置文件的权限,将SSH2兼容格式的公钥转换成为Openssh兼容格式。
498)this.width=498;'' onmousewheel = ''javascript:return big(this)'' alt="" src="/uploadfile/201301/12/A3121629340.png" />
上图中遇到的命令如下所示:
- # ssh-keygen -i -f /home/hadoop/.ssh/PubKey_TMaster_Hadoop.pub >>/home/hadoop/.ssh /authorized_keys
- # chmod 600 /home/hadoop/.ssh/authorized_keys
上面命令红色标注的部分是根据实际情况变化的,比如这是从网上找的一个例子,他是这样设置的。
- # ssh-keygen -i -f Identity.pub >> /root/.ssh/authorized_keys
- # chmod 600 /root/.ssh/authorized_keys
上面蓝色标注的部分是两个命令的共同点。
第四步:设置ssh配置文件,为了安全建议只使用密钥登录,去掉默认的密码登录。
一般用户无法修改"/etc/ssh/sshd_config"文件,所以必须切换到root最高权限用户下进行修改。使用下面命令。
Protocol 2 # 使用SSH2协议
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)
PasswordAuthentication no # 禁止密码验证登陆(根据需要,不过一般启用了密钥,就不用密码了)
第五步:重启Linux服务器的ssh服务
# service sshd restart
在"用密码登陆Linux"小节中,我们讲到过用两种方式打开"连接"界面,然后选择"快速连接"。
498)this.width=498;'' onmousewheel = ''javascript:return big(this)'' alt="" src="/uploadfile/201301/12/56121629710.png" />
点击完"快速连接"会弹出下面界面:
498)this.width=498;'' onmousewheel = ''javascript