Linux免密登陆-ubuntu
侧边栏壁纸
  • 累计撰写 307 篇文章
  • 累计阅读 104.3万

Linux免密登陆-ubuntu

TOTC
2017-01-14 / 841 阅读 / 正在检测是否收录...

1.假设目前有2台服务器:Master、Slave,现在要设置它们之间免密码ssh登陆。

2.1 配置Master免密码登陆Slave

免密码ssh登录的原理是这样的:

a.Master(NameNode | JobTracker)如果作为客户端,实现无密码公钥认证,来连接到服务器Salve(DataNode | Tasktracker)上,需要在Master上生成一个密钥对,包括1个公钥和1个私钥,然后需要将公钥复制到所有的Slave上。

b.当Master通过SSH连接Salve时,Salve就会生成一个随机数,并且用Master的公钥对随机数进行加密,并且发送给Master。

c.Master收到加密数之后,会使用自己的私钥解密,并将解密数回传给Slave。

d.Slave确认解密数无误之后就允许Master进行连接了。

这就是一个公钥认证过程,这个过程中不需要用户手动输入密码。而具体到实现这个无密码登录的准备过程,重要的是将客户端Master的公钥复制到Slave上。

2.1.1 创建“.ssh”目录

若“.ssh目录”不存在,创建”.ssh目录”:

mkdir ~/.ssh

2.1.2 修改“.ssh 目录”权限。

chmod 700 ~/.ssh

2.1.3 创建Master服务器的公钥和私钥

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

这个过程会在目录:

~/.ssh/

下生成公钥:id_rsa

和私钥:id_rsa.pub

2.1.4 配置Master本机ssh免密登录做测试

同第1步类似,在Master上配置一下本机的ssh免密登录,将公钥“id_rsa.pub”追加到授权的key里面:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

授权:

chmod 0600 ~/.ssh/authorized_keys

然后使用命令:

ssh localhost

做测试,没问题就可以了。

注意: 登陆之后,记得执行:

exit

退出!

2.1.5 修改SSH配置文件"/etc/ssh/sshd_config"

修改SSH配置文件:/etc/ssh/sshd_config

确保以下内容信息:

RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)

2.1.6 拷贝Master的公钥到Slave上去

执行命令:

scp ~/.ssh/id_rsa.pub hadoop@Slave:~/

2.1.7 配置Slave节点

登录Slave节点,执行以下操作:

a.修改.ssh权限:

chmod 700 ~/.ssh

b.把Master的公钥追加到Slave的授权文件"authorized_keys"中去:

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

c.修改该授权文件的权限:

chmod 600 ~/.ssh/authorized_keys

2.1.8 测试免密码登录

在Master上执行:

ssh Slave

其中“Slave”已经在Master的“/etc/hosts”文件中配置过了,如果这个登录不需要输入密码,那么免密码ssh登录就设置成功了!

2.2 配置Slave免密码登陆Master

76

评论

博主关闭了所有页面的评论