hadoop之ssh免登陆实现

1. 3台机器设置ip以及hostname

# Deepin 2014

# /etc/hosts

# hadoop begin

192.168.0.107   master.hadoop
192.168.0.101   salve1.hadoop
192.168.0.102   salve2.hadoop

# hadoop end


2. 配置ssh免登陆

测试目标:实现salve1免登陆master

步骤:

2.1、salve1上生成密钥

ssh-keygen -t rsa -b 1024

记得按提示输入密码(这样更安全...)

2.2、将公钥发给master

scp ~/.ssh/id_rsa.pub zhuqi259@master.hadoop:~

2.3、master将此公钥加入authorized_keys

(先登陆到master机器中)

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

(保证authorized_keys 权限,否则 [sudo] chmod 600 ~/.ssh/authorized_keys)

2.4、确保master服务器sshd服务配置文件( /etc/ssh/sshd_config)

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys

2.5、重启master sshd服务

sudo /etc/init.d/ssh restart

2.6、此时salve1使用ssh登陆master只需要输入密钥的密码即可(不是用户口令验证登陆)

2.7、为避免每次均输入密钥密码(虽然是个好习惯),(引用jianingy)

cd ~
touch ssh-agent-pl

#!/usr/bin/env perl
# author: jianingy
# 2007/06/24

use strict;
my $exist;
my @dirs = grep {-r $_} glob "/tmp/ssh-*";
foreach (@dirs) {
    my @socks = glob("{$_}/agent.*");
    next unless (@socks);
    foreach (@socks) {
        $exist = $_;
        # check agent
        unless (system "SSH_AUTH_SOCK=$_ ssh-add -l >/dev/null 2>&1") {
            print "export SSH_AUTH_SOCK=$_\n";
            exit 0;
        }
    }
}

if ($exist) {
    system "SSH_AUTH_SOCK=$exist ssh-add";
    print "export SSH_AUTH_SOCK=$exist\n";
} else {
    system "ssh-agent";
    exec $0;
}


然后放到/usr/bin中

sudo chmod a+x ssh-agent-pl
sudo mv ssh-ahent-pl /usr/bin

然后在.bashrc最后添加

eval `ssh-agent-pl`

2.8、salve1免登陆master结束



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值