SSH无password登陆配置

摘录一

在192.168.42.142机器上

1)执行:ssh-keygen -t rsa

2)然后拍两下回车(均选择默认)

3)执行:

ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]

或普通用户:

ssh-copy-id [email protected]

4)再输入163机器上的rootpassword

此时。再ssh 到163机器,则不须要password了。

相互之间scp,也不须要password

摘录二

配置 ssh 实现 MPI 节点间用户的无password訪问,因为 MPI 并行程序须要在各节点间进行信息传递,所以必须实现全部节点两两之间能无password訪问。

节点间的无password訪问是通过配置ssh 公钥认证来实现的。比如,对新用户 user 配置 ssh 公钥认证,先在 c1 上做下面操作。

(1)生成了私钥 id_dsa 和公钥 id_dsa.pub,详细操作方法例如以下。

ssh-keygen -t rsa

系统显示一些信息,遇到系统询问直接回车就可以。

(2)将该密钥用作认证,进行訪问授权。按例如以下命令在 c1 运行。

cp ~/.ssh/id_dsa.pub ~/.ssh/authorized_keys

因为我们使用的是 root 用户,所以~代表/root,

(3)将~/.ssh 文件夹下的文件拷贝到全部节点。

scp -r ~/.ssh/* c2:/root/.ssh

(4)检查能否够直接(不须要password)登录其它节点。

ssh c2

如能两两之间不须要password登录其它节点,则表明配置成功。

!!

!!

!!

!!

!。!!。!!!

!!!!。!

!。。。。!

。。。。

http://www.cnblogs.com/xia520pi/archive/2012/05/16/2503949.html

2、SSH无password验证配置

  Hadoop执行过程中须要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSH(Secure Shell)来启动和停止各个DataNode上的各种守护进程的。这就必须在节点之间执行指令的时候是不须要输入password的形式。故我们须要配置SSH运用无password公钥认证的形式,这样NameNode使用SSH无password登录并启动DataName进程。相同原理,DataNode上也能使用SSH无password登录到NameNode。

2.1 安装和启动SSH协议

  在"Hadoop集群(第1期)"安装CentOS6.0时。我们选择了一些基本安装包。所以我们须要两个服务:ssh和rsync已经安装了。能够通过以下命令查看结果显演示样例如以下:

rpm –qa | grep openssh

rpm –qa | grep rsync

  如果没有安装ssh和rsync,能够通过以下命令进行安装。

yum install ssh 安装SSH协议

yum install rsync (rsync是一个远程数据同步工具。可通过LAN/WAN高速同步多台主机间的文件)

service sshd restart 启动服务

  确保全部的server都安装,上面命令运行完成。各台机器之间能够通过password验证相互登。

2.2 配置Master无password登录全部Salve

  1)SSH无password原理

  Master(NameNode | JobTracker)作为client,要实现无password公钥认证,连接到serverSalve(DataNode | Tasktracker)上时,须要在Master上生成一个密钥对,包含一个公钥和一个私钥,而后将公钥拷贝到全部的Slave上。

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

Master收到加密数之后再用私钥解密,并将解密数回传给Slave,Slave确认解密数无误之后就同意Master进行连接了。这就是一个公钥认证过程,其间不须要用户手工输入password。

重要过程是将clientMaster拷贝到Slave上。

  2)Master机器上生成password对

   在Master节点上运行下面命令:

ssh-keygen –t rsa –P ‘‘

  这条命是生成其无password密钥对,询问其保存路径时直接回车採用默认路径。生成的密钥对:id_rsa和id_rsa.pub,默认存储在"/home/hadoop/.ssh"文件夹下。

  查看"/home/hadoop/"下是否有".ssh"目录,且".ssh"文件下是否有两个刚生产的无password密钥对。

 接着在Master节点上做例如以下配置,把id_rsa.pub追加到授权的key里面去。

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

  在验证前,须要做两件事儿。第一件事儿是改动文件"authorized_keys"权限(权限的设置很重要。由于不安全的设置安全设置。会让你不能使用RSA功能),还有一件事儿是用root用户设置"/etc/ssh/sshd_config"的内容。

使其无password登录有效。

  1)改动文件"authorized_keys"

chmod 600 ~/.ssh/authorized_keys

   备注:假设不进行设置。在验证时。扔提示你输入password。在这里花费了将近半天时间来查找原因。

在网上查到了几篇不错的文章。把作为"Hadoop集群_第5期副刊_JDK和SSH无password配置"来帮助额外学习之用。

2)设置SSH配置

  用root用户登录server改动SSH配置文件"/etc/ssh/sshd_config"的下列内容。

RSAAuthentication yes # 启用 RSA 认证

PubkeyAuthentication yes # 启用公钥私钥配对认证方式

AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)

  设置完之后记得重新启动SSH服务,才干使刚才设置有效。

service sshd restart

  退出root登录,使用hadoop普通用户验证是否成功。

ssh localhost

  从上图中得知无password登录本级已经设置完成,接下来的事儿是把公钥复制全部的Slave机器上。使用以下的命令格式进行复制公钥:

scp ~/.ssh/id_rsa.pub 远程[email protected]远程serverIP:~/

  比如:

scp ~/.ssh/id_rsa.pub [email protected]:~/

  上面的命令是复制文件"id_rsa.pub"到serverIP为"192.168.1.3"的用户为"hadoop"的"/home/hadoop/"以下。

  以下就针对IP为"192.168.1.3"的Slave1.Hadoop的节点进行配置。

  1)把Master.Hadoop上的公钥拷贝到Slave1.Hadoop上

  从上图中我们得知。已经把文件"id_rsa.pub"传过去了。由于并没有建立起无password连接,所以在连接时,仍然要提示输入输入Slave1.Hadoopserver用户hadoop的password。为了确保确实已经把文件传过去了。用SecureCRT登录Slave1.Hadoop:192.168.1.3server,查看"/home/hadoop/"下是否存在这个文件。

  从上面得知我们已经成功把公钥复制过去了。

  2)在"/home/hadoop/"下创建".ssh"目录

  这一步并非必须的。假设在Slave1.Hadoop的"/home/hadoop"已经存在就不须要创建了,由于我们之前并没有对Slave机器做过无password登录配置。所以该文件是不存在的。用以下命令进行创建。(备注:用hadoop登录系统,假设不涉及系统文件改动。普通情况下都是用我们之前建立的普通用户hadoop进行运行命令。)

mkdir ~/.ssh

  然后是改动目录".ssh"的用户权限,把他的权限改动为"700",用以下命令运行:

chmod 700 ~/.ssh

  备注:假设不进行,即使你依照前面的操作设置了"authorized_keys"权限。并配置了"/etc/ssh/sshd_config",还重新启动了sshd服务,在Master能用"ssh localhost"进行无password登录,可是对Slave1.Hadoop进行登录仍然须要输入password,就是由于".ssh"目录的权限设置不正确。这个目录".ssh"在配置SSH无password登录时系统自己主动生成时,权限自己主动为"700",假设是自己手动创建,它的组权限和其它权限都有,这样就会导致RSA无password远程登录失败。

  对照上面两张图。发现目录".ssh"权限已经变了。

  3)追加到授权文件"authorized_keys"

  到眼下为止Master.Hadoop的公钥也有了,目录".ssh"也有了,且权限也改动了。

这一步就是把Master.Hadoop的公钥追加到Slave1.Hadoop的授权文件"authorized_keys"中去。

使用以下命令进行追加并改动"authorized_keys"文件权限:

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

chmod 600 ~/.ssh/authorized_keys

  4)用root用户改动"/etc/ssh/sshd_config"

  详细步骤參考前面Master.Hadoop的"设置SSH配置",详细分为两步:第1是改动配置文件。第2是重新启动SSH服务。

  5)用Master.Hadoop使用SSH无password登录Slave1.Hadoop

  当前面的步骤设置完成,就能够使用以下命令格式进行SSH无password登录了。

ssh 远程serverIP

  从上图我们主要3个地方,第1个就是SSH无password登录命令,第2、3个就是登录前后"@"后面的机器名变了,由"Master"变为了"Slave1",这就说明我们已经成功实现了SSH无password登录了。

  最后记得把"/home/hadoop/"文件夹下的"id_rsa.pub"文件删除掉。

rm –r ~/id_rsa.pub

  到此为止,我们经过前5步已经实现了从"Master.Hadoop"到"Slave1.Hadoop"SSH无password登录。以下就是反复上面的步骤把剩余的两台(Slave2.Hadoop和Slave3.Hadoop)Slaveserver进行配置。

这样,我们就完毕了"配置Master无password登录全部的Slaveserver"。

2.3 配置全部Slave无password登录Master

  和Master无password登录全部Slave原理一样,就是把Slave的公钥追加到Master的".ssh"目录下的"authorized_keys"中,记得是追加(>>)。

  为了说明情况,我们如今就以"Slave1.Hadoop"无password登录"Master.Hadoop"为例,进行一遍操作。也算是巩固一下前面所学知识。剩余的"Slave2.Hadoop"和"Slave3.Hadoop"就依照这个演示样例进行就能够了。

  首先创建"Slave1.Hadoop"自己的公钥和私钥,并把自己的公钥追加到"authorized_keys"文件里。用到的命令例如以下:

ssh-keygen –t rsa –P ‘‘

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

  接着是用命令"scp"复制"Slave1.Hadoop"的公钥"id_rsa.pub"到"Master.Hadoop"的"/home/hadoop/"文件夹下。并追加到"Master.Hadoop"的"authorized_keys"中。

  1)在"Slave1.Hadoop"server的操作

  用到的命令例如以下:

scp ~/.ssh/id_rsa.pub     [email protected]:~/

  2)在"Master.Hadoop"server的操作

  用到的命令例如以下:

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

  然后删除掉刚才复制过来的"id_rsa.pub"文件。

  最后是測试从"Slave1.Hadoop"到"Master.Hadoop"无password登录。

  从上面结果中能够看到已经成功实现了,再试下从"Master.Hadoop"到"Slave1.Hadoop"无password登录。

  至此"Master.Hadoop"与"Slave1.Hadoop"之间能够互相无password登录了,剩下的就是依照上面的步骤把剩余的"Slave2.Hadoop"和"Slave3.Hadoop"与"Master.Hadoop"之间建立起无password登录。这样,Master能无password验证登录每一个Slave,每一个Slave也能无password验证登录到Master。

时间: 2024-10-14 00:48:42

SSH无password登陆配置的相关文章

Linux 批量建立信任关系,实现ssh无password登陆的脚本

作用: 把当前机器的ssh公钥拷贝到其它机器.以实现从当前机器能够ssh无password登陆到其它机器 用法: 1)把要加入的ip地址写入到一个文件里.比方host 2)把脚本保存为sh文件,如 install_ssh.sh 设置可运行权限 3)改写脚本中的password设置.眼下仅仅支持固定几个password. 4)  运行命令 sh install_ssh.sh <host 代码: #!/bin/sh auto_ssh_copy_id() { local HOST=$1 local P

mac/linux ssh 免密码登陆配置及错误处理

先说一下,mac 和linux 的设置方法是一样的 一般做法可以参照http://www.tuicool.com/articles/i6nyei 第一步:生成密钥.在终端下执行命令: ssh-kegen -t rsa 一路回车,各种提示按默认不要改,等待执行完毕.然后执行: ls ~/.ssh #可以看到两个密钥文件:id_rsa(私钥) id_rsa.pub(公钥) 第二步:放置公钥到Linux服务器.使用scp命令: scp ~/.ssh/id_rsa.pub [email protecte

CentOS, 高速设置ssh无password登录

首先.保证能够ping通 然后运行例如以下命令, master登录slave master上面运行例如以下指令: 2.4 确认本机sshd的配置文件(root) $ vi/etc/ssh/sshd_config 找到下面内容,并去掉凝视符"#" RSAAuthenticationyes PubkeyAuthenticationyes AuthorizedKeysFile.ssh/authorized_keys 2.5 假设改动了配置文件须要重新启动sshd服务(root) $ vi/s

Linux SSH无交互式访问配置

环境准备两台Linux服务器: 准备一台SSH服务端(系统环境centos6.5,ip地址192.168.100.100) 准备一台SSH客户端(系统环境centos6.5,ip地址192.168.100.101) 1.检查是否安装SSH软件包 [[email protected] ~]# rpm -qa openssh-server opensslopenssh-server-5.3p1-94.el6.x86_64openssl-1.0.1e-15.el6.x86_64 2.启动SSH服务 [

Hapoop 搭建 (二)设置虚拟机SSH无密钥登陆

一.将各个节点的公钥加入到同一个授权文件 1.在centos01中,生产密钥文件,并加公钥信息加入到授权文件 cd ~/.ssh/ #若没有此文件夹,先执行 ssh localhsot ssh-keygen -t rsa #生产密钥文件,会提示输入加密信息,都按回车 cat ./id_rsa.pub >> ./authorized_keys #将密钥文件加入到授权文件中 2.在centos02中,生产密钥文件,并发送到centos01节点的相同目录 cd ~/.ssh/ #若没有此文件夹,先执

解决Centos6.4集群配置ssh免密登陆仍然需要输入密码问题

遇到的问题展示:   Ssh免密登陆配置成功之后仍然需要输入密码,找了很多方法,最后已解决,现把解决办法的详细过程记录下来,希望对你有帮助...       解决办法: 一.准备工作 1.安装ssh服务 执行rpm -qa | grep ssh 若无返回ssh服务,则需要执行下列语句进行安装 sudo yum install openssh-clients sudo yum install openssh-server 2.打开本机的ssh配置文件   删除以下内容每行开头的注释"#"

Hadoop之——CentOS构造ssh否password登录注意事项

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46388809 前提配置:使用root登录改动配置文件:/etc/ssh/sshd_config.将当中三行的凝视去掉,例如以下 然后重新启动ssh服务:service sshd restart.最后退出root,下面全部操作都在hadoop用户下进行. 主机信息例如以下: 如上图,当前登录用户为hadoop,主机名为slave.hadoop.与master.hadoop主机的网络

mac无密登陆到linux

最近弄了台linux云服务器,然而每次登陆linux都好麻烦,所以倒腾了下ssh无密登陆. linux:centos 6.5,自带ssh mac:yosemite,自带ssh 步骤: 1. 创建key ? .ssh ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/Users/yinkw/.ssh/id_rsa): <--直接回车 Enter passph

实现ssh的无password登录

这里所说的ssh是指OpenSSH SSHclient.是用于登录远程主机.而且在远程主机上运行命令.它的目的是替换rlogin和rsh,同一时候在不安全的网络之上,两个互不信任的主机之间,提供加密的.安全的通信连接.X11连接和随意TCP/IPport均能够通过此安全通道转发. 在RedHat 6.1中,默认安装的OpenSSL是一种比較常见的SSH服务端和client软件.默认port是22. SSH服务端事实上是一个守护进程(daemon),在后台执行并对应来自client的连接请求.服务