CentOS 配置集群机器之间SSH免密码登录

SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。

在Hadoop集群或其他集群中广泛应用用,可用于机器之间免密码登录和执行脚本,如的Hadoop集群中NameNode启动的时候会远程执行脚本把集群中DataNode的也一起启动起来。

这里主要介绍SSH的配置和登录失败的情况

SSH配置

集群中的每台主机上打开配置

sudo vim /etc/ssh/sshd_config

开启下面的选项

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

生成SSH密钥

集群中的每台主机上执行下面命令,一路回车,可生成本机的rsa类型的密钥。

ssh-keygen -t rsa

执行完之后在~/.ssh/目录下会生成一个保存有公钥的文件:id_rsa.pub

把公钥写入authorized_keys文件

把自己的公钥拷贝到集群中的Master机

ssh-copy-id [email protected]

最终在Master机上生成如下的内容的~/.ssh/authorized_keys文件:

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArYU2kMXsu75Gzwvuby7OoGzC7GVwxVo+ol/7nJVD    BpKpJLRHRe/d2HSNe9ZZRWLK2tU0e41baMxrYRoAKJA2ujcWfy7t57c3ArO9hA7KJy7MqMiT8WHQ    M3I2Afsx6sVKeQU/czDLXHn+KjwKbR8z0tuycgtxgkaWx1PCpCKeFDAXDVvxYcurSUNaIGL5Egzu    Iy97N52ld/WxUZnRRsTPdpW88JkhWdOV1Bdo4O67rNv5tSYKHXfPwqi8NekqoHIExgVRsHLvM8fe    xvV4mo8lXYdQPRCyrtM9/V+4kSW8eaBO7w6hM9YVZIspSqx0+OqibWTvqSmiAVh0JmUT0MCeVQ==     [email protected]
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA7n27x4qSzRQNGQAL+rT1+91IQnM9cwZYFeSUzrJD    GDfwCTJMKnRBYxrDMxTAM6MKjfwwkPzXnbKHLQnDiJKUSdF8H2xcgDMBJLssVQjOc2jSEg/VppQN    hJwObbIL3k1FbU2KxkOp7yW5PIodZrgUwlH5wdXtfsPKimvv72uA1KUiqPbYA3ZJqXw9Bt87K6Sv    IAkvUjshnfaS+wNEBVwW1dhXyz6DHuY+Tn9330+1oYfdmgSjS4ZqvZVothhhV58DNwzAYwINCpBA    tkjFbk/SOf0q/4rSJRpe2yH9xOuZdwqXMfk3dkp0UFZkV2EVSLyaCNKwTbSuKN75FWhgl8QB7w==     [email protected]
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAw91O/1NWnbr6/vop+xwnqR/XYNpwkWselzyHNqgD    PYgXXsDHsvOZbpTX7pgOTgVSmlZetCdX4C1lsc/PO8IitvvBS/qWU216lXaqlW61RcliCrYH/RwN    f8XTLx/Ga04w2qEIFlLOiuH6x/KA22muOLYaSIefXv38xj0Hj41iE5ZIseaLuJogn7iqJ6Fq0wQH    i6ueF9BasSWnOHhn6CJamYz3FC9r2m3vwPMkgagPp1FdYyDxodK+MZlwu6TxqP6QQ7BY/Wh5DZK8    C8zpDOZGQgWOrghF58TlZSmJYmukv1NqsY8PCFuoj7vfoUzVKQkyKcEiohwBcTb50vGPl06bMQ==     [email protected]

把HadoopMaster的authorized_keys拷贝到HadoopSlave1和HadoopSlave2

scp ~/.ssh/authorized_keys [email protected]:~/.ssh/
scp ~/.ssh/authorized_keys [email protected]:~/.ssh/

重启SSH服务

sudo service sshd restart

测试连接

ssh HadoopSlave1

常见免密码登录失败分析

配置问题

  1. 检查配置文件/etc/ssh/sshd_config是否开启了AuthorizedKeysFile选项
  2. 检查AuthorizedKeysFile选项指定的文件是否存在并内容正常

目录权限问题

  1. ~权限设置为700
  2. ~/.ssh权限设置为700
  3. ~/.ssh/authorized_keys的权限设置为600
sudo chmod 700 ~
sudo chmod 700 ~/.ssh
sudo chmod 600 ~/.ssh/authorized_keys

设置完了记得重启ssh服务

转载请注明出处:http://www.cnblogs.com/keitsi/p/5653520.html

时间: 2024-08-03 13:55:39

CentOS 配置集群机器之间SSH免密码登录的相关文章

集群中配置多台机器之间 SSH 免密码登录

集群中配置多台机器之间 SSH 免密码登录 问题描述 由于现在项目大多数由传统的单台机器部署,慢慢转变成多机器的集群化部署. 但是,这就涉及到机器间的 SSH 免密码互通问题. 当集群机器比较多的时候,如何能快速简洁地配置机器之间的免密码登录呢? 完美方案 1.分别查看集群的机器上,是否安装了 SSH,并且服务正常运行 ps -ef | grep ssh 2.如果步骤 1 检查后,确认没有安装 SSH,可以通过如下命令安装 SSH sudo apt-get install ssh 找到隐藏目录.

Linux之间ssh免密码登录

一.生成公私钥对 $ ssh-keygen -t rsa -P '' Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa):  Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The

解决:centos配置ssh免密码登录后仍要输入密码

转自https://www.jb51.net/article/121180.htm 第一步:在本机中创建秘钥 1.执行命令:ssh-keygen -t rsa 2.之后一路回车就行啦:会在-(home)目录下中产生.ssh(隐藏)文件夹: 3.里面有两个文件id_rsa(私钥).id_rsa.pub(公钥)文件 注意事项: ①在liunx环境下,要想复制公钥或是私钥,不要使用vim等编辑器打开文件来复制粘贴: 因为它会产生不必要的回车. ②应该使用cat把内容打印到终端上再来复制粘贴: 第二步:

CentOS 6.4 SSH 免密码登录

在配置apache集群分布时,要使用SSH免密码登录.假设现在有两台机器[email protected](192.168.1.100)作为svn机,[email protected](192.168.1.101)作为app机.现在想[email protected]通过ssh免密码登录到[email protected]. 1.在svn机下生成公钥/私钥对. [[email protected] ~]$ ssh-keygen -t rsa -P '' 敲击回车键即可,它在/home/apach

ssh免密码登录机器(使用公钥和秘钥进行加密来实现)

ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例. 登录的原理: 有机器A(192.168.1.155),B(192.168.1.181).现想A通过ssh免密码登录到B.首先以root账户登陆为例. 1.首先我们需要在A机器上生成一对公钥和密钥对,生成的方法如下: 1 [[email protected] ~]# ssh-keygen -t rsa -P '' -P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样

Xshell配置ssh免密码登录-密钥公钥(Public key)与私钥(Private Key)登录

ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口令(密码)认证方式是我们最常用的一种,这里介绍密钥认证方式登录到linux/unix的方法. 使用密钥登录分为3步:1.生成密钥(公钥与私钥):2.放置公钥(Public Key)到服务器~/.ssh/authorized_key文件中:3.配置ssh客户端使用密钥登录. 一.生成密钥公钥(Public key)与私钥(Private Key) 打开Xshell,在菜单栏点击"tools",在弹出的菜单中选择&quo

linux 配置ssh免密码登录

1.确保主机名唯一 主机名修改方法: a.修改/etc/sysconfig/network,HOSTNAME=想要设置的主机名称 b.修改/etc/hosts,127.0.0.1   localhost 想要设置的主机名称 localhost4 localhost4.localdomain4 2.查看ssh是否安装,是否可用.可通过ssh 10.10.10.1(其他内网IP)测试. 3.执行:ssh-keygen -t rsa,回车后会有三次让输入,这三次都不用输入,直接按三个回车. 4.这时可

配置SSH免密码登录

1.判断是否已经设置SSH免密码登录,下面的情况就表示没有设置SSH免密码登录 2.生成密钥 3.查看生成的密钥 4.将公钥文件追加到本地的认证文件中 5.验证免密码登录,输入ssh node2命令回车后提示登录时间,表示设置免密码登录成功 6.退出当前的shell

Linux 配置ssh 免密码登录

在平常应用中,我们经常会登录到其他主机,比如说服务器,每次都需要用户名和密码. 我们可以通过ssh免密码登录服务器而不需要输入密码. 现在有一台ubuntu的阿里云服务器,称之为 server.  公用ip 地址为:192.168.100.100.  现在开始实现用自己的电脑实现ssh免密码登录到 server中.我的电脑是windows 系统,并且安装了Git.(mac 的原理其实一样) 1. 打开Git Bash 执行以下命令生成 sshkey ssh-keygen -t rsa -C "[