如何实现美国23.234.3.x两台服务器间无密码的传输数据和操作
我们知道如果要向远程服务器传输数据和操作必须输入用户名和密码远程登录服务器 ,或用FTP等协议,都需要权限控制。
然而如果是两台服务器间的软件需要通讯和数据传输,如hadoop集群中机器互访,是不是每次也要输入用户名和密码?那是不是很麻烦?下面介绍SSH来解决这个问题(不是JAVA中的SSH概念)
SSH是一种网络协议,用于计算机之间的加密登录。
如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。
最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑。1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。
需要指出的是,SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现。本文针对的实现是OpenSSH,它是自由软件,应用非常广泛。
此外,本文只讨论SSH在Linux Shell中的用法。如果要在Windows系统中使用SSH,会用到另一种软件PuTTY
Hadoop运行过程中需要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSH(Secure Shell)来启动和停止各个DataNode上的各种守护进程的。
这就必须在节点之间执行指令的时候是不需要输入密码的形式,故我们需要配置SSH运用无密码公钥认证的形式,这样NameNode使用SSH无密码登录并启动DataName进程,同样原理,DataNode上也能使用SSH无密码登录到NameNode。
下面就安装总结一下网友和自己的经验。
环境
CentOS7.0
安装
yum install ssh 安装SSH协议 yum install rsync (rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件) service sshd restart 启动服务
查看安装
rpm –qa | grep openssh rpm –qa | grep rsync
为避免麻烦,每个服务器上都要装。
配置Master无密码登录所有Salve
1)SSH无密码原理
Master(NameNode | JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器Salve(DataNode | Tasktracker)上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Slave上。当Master通过SSH连接Salve时,Salve就会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Slave,Slave确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端Master复制到Slave上。
2)Master机器上生成密码对
在Master节点上执行以下命令:
ssh-keygen –t rsa –P '
这条命是生成其无密码密钥对,询问其保存路径时直接回车采用默认路径。生成的密钥对:id_rsa和id_rsa.pub,默认存储在"/home/hadoop/.ssh"目录下(每台服务器看各自的生成路径信息 因为hadoop为用户名,所以生成在当前用户名下)。
查看"/home/hadoop/"下是否有".ssh"文件夹,且".ssh"文件下是否有两个刚生产的无密码密钥对。
接着在Master节点上做如下配置,把id_rsa.pub追加到授权的key里面去。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
在验证前,需要做两件事儿。第一件事儿是修改文件"authorized_keys"权限(权限的设置非常重要,因为不安全的设置安全设置,会让你不能使用RSA功能),另一件事儿是用root用户设置"/etc/ssh/sshd_config"的内容。使其无密码登录有效。
1)修改文件"authorized_keys"
chmod 600 ~/.ssh/authorized_keys
备注:如果不进行设置,在验证时,扔提示你输入密码,在这里花费了将近半天时间来查找原因。
2)设置SSH配置
用root用户登录服务器修改SSH配置文件"/etc/ssh/sshd_config"的下列内容。
RSAAuthentication yes # 启用 RSA 认证 PubkeyAuthentication yes # 启用公钥私钥配对认证方式 AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)
设置完之后记得重启SSH服务,才能使刚才设置有效。
service sshd restart
退出root登录,使用hadoop普通用户验证是否成功。
ssh localhost
从上图中得知无密码登录本级已经设置完毕,接下来的事儿是把公钥复制所有的Slave机器上。使用下面的命令格式进行复制公钥:
scp ~/.ssh/id_rsa.pub 远程用户名@远程服务器IP:~/
例如:
scp ~/.ssh/id_rsa.pub hadoop@192.168.1.3:~/
上面的命令是复制文件"id_rsa.pub"到服务器IP为"192.168.1.3"的用户为"hadoop"的"/home/hadoop/"下面。
下面就针对IP为"192.168.1.3"的Slave1.Hadoop的节点进行配置。
1)把Master.Hadoop上的公钥复制到Slave1.Hadoop上
从上图中我们得知,已经把文件"id_rsa.pub"传过去了,因为并没有建立起无密码连接,所以在连接时,仍然要提示输入输入Slave1.Hadoop服务器用户hadoop的密码。为了确保确实已经把文件传过去了,用SecureCRT登录Slave1.Hadoop:192.168.1.3服务器,查看"/home/hadoop/"下是否存在这个文件。
从上面得知我们已经成功把公钥复制过去了。
2)在"/home/hadoop/"下创建".ssh"文件夹
这一步并不是必须的,如果在Slave1.Hadoop的"/home/hadoop"已经存在就不需要创建了,因为我们之前并没有对Slave机器做过无密码登录配置,所以该文件是不存在的。用下面命令进行创建。(备注:用hadoop登录系统,如果不涉及系统文件修改,一般情况下都是用我们之前建立的普通用户hadoop进行执行命令。)
mkdir ~/.ssh
然后是修改文件夹".ssh"的用户权限,把他的权限修改为"700",用下面命令执行:
chmod 700 ~/.ssh
备注:如果不进行,即使你按照前面的操作设置了"authorized_keys"权限,并配置了"/etc/ssh/sshd_config",还重启了sshd服务,在Master能用"ssh localhost"进行无密码登录,但是对Slave1.Hadoop进行登录仍然需要输入密码,就是因为".ssh"文件夹的权限设置不对。这个文件夹".ssh"在配置SSH无密码登录时系统自动生成时,权限自动为"700",如果是自己手动创建,它的组权限和其他权限都有,这样就会导致RSA无密码远程登录失败。
对比上面两张图,发现文件夹".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无密码登录Slave1.Hadoop
当前面的步骤设置完毕,就可以使用下面命令格式进行SSH无密码登录了。
ssh 远程服务器IP
从上图我们主要3个地方,第1个就是SSH无密码登录命令,第2、3个就是登录前后"@"后面的机器名变了,由"Master"变为了"Slave1",这就说明我们已经成功实现了SSH无密码登录了。
最后记得把"/home/hadoop/"目录下的"id_rsa.pub"文件删除掉。
rm –r ~/id_rsa.pub
精品IP展示:
23.234.3.1
23.234.3.2
23.234.3.3
23.234.3.4
23.234.3.5
23.234.3.6
23.234.3.7
23.234.3.8
23.234.3.9
23.234.3.10
23.234.3.11
23.234.3.12
23.234.3.13
23.234.3.14
23.234.3.15
23.234.3.16
23.234.3.17
23.234.3.18
23.234.3.19
23.234.3.20
23.234.3.21
23.234.3.22
23.234.3.23
23.234.3.24
23.234.3.25
23.234.3.26
23.234.3.27
23.234.3.28
23.234.3.29
23.234.3.30
23.234.3.31
23.234.3.32
23.234.3.33
23.234.3.34
23.234.3.35
23.234.3.36
23.234.3.37
23.234.3.38
23.234.3.39
23.234.3.40
23.234.3.41
23.234.3.42
23.234.3.43
23.234.3.44
23.234.3.45
23.234.3.46
23.234.3.47
23.234.3.48
23.234.3.49
23.234.3.50
23.234.3.51
23.234.3.52
23.234.3.53
23.234.3.54
23.234.3.55
23.234.3.56
23.234.3.57
23.234.3.58
23.234.3.59
23.234.3.60
23.234.3.61
23.234.3.62
23.234.3.63
23.234.3.64
23.234.3.65
23.234.3.66
23.234.3.67
23.234.3.68
23.234.3.69
23.234.3.70
23.234.3.71
23.234.3.72
23.234.3.73
23.234.3.74
23.234.3.75
23.234.3.76
23.234.3.77
23.234.3.78
23.234.3.79
23.234.3.80
23.234.3.81
23.234.3.82
23.234.3.83
23.234.3.84
23.234.3.85
23.234.3.86
23.234.3.87
23.234.3.88
23.234.3.89
23.234.3.90
23.234.3.91
23.234.3.92
23.234.3.93
23.234.3.94
23.234.3.95
23.234.3.96
23.234.3.97
23.234.3.98
23.234.3.99
23.234.3.100
23.234.3.101
23.234.3.102
23.234.3.103
23.234.3.104
23.234.3.105
23.234.3.106
23.234.3.107
23.234.3.108
23.234.3.109
23.234.3.110
23.234.3.111
23.234.3.112
23.234.3.113
23.234.3.114
23.234.3.115
23.234.3.116
23.234.3.117
23.234.3.118
23.234.3.119
23.234.3.120
23.234.3.121
23.234.3.122
23.234.3.123
23.234.3.124
23.234.3.125
23.234.3.126
23.234.3.127
23.234.3.128
23.234.3.129
23.234.3.130
23.234.3.131
23.234.3.132
23.234.3.133
23.234.3.134
23.234.3.135
23.234.3.136
23.234.3.137
23.234.3.138
23.234.3.139
23.234.3.140
23.234.3.141
23.234.3.142
23.234.3.143
23.234.3.144
23.234.3.145
23.234.3.146
23.234.3.147
23.234.3.148
23.234.3.149
23.234.3.150
23.234.3.151
23.234.3.152
23.234.3.153
23.234.3.154
23.234.3.155
23.234.3.156
23.234.3.157
23.234.3.158
23.234.3.159
23.234.3.160
23.234.3.161
23.234.3.162
23.234.3.163
23.234.3.164
23.234.3.165
23.234.3.166
23.234.3.167
23.234.3.168
23.234.3.169
23.234.3.170
23.234.3.171
23.234.3.172
23.234.3.173
23.234.3.174
23.234.3.175
23.234.3.176
23.234.3.177
23.234.3.178
23.234.3.179
23.234.3.180
23.234.3.181
23.234.3.182
23.234.3.183
23.234.3.184
23.234.3.185
23.234.3.186
23.234.3.187
23.234.3.188
23.234.3.189
23.234.3.190
23.234.3.191
23.234.3.192
23.234.3.193
23.234.3.194
23.234.3.195
23.234.3.196
23.234.3.197
23.234.3.198
23.234.3.199
23.234.3.200
23.234.3.201
23.234.3.202
23.234.3.203
23.234.3.204
23.234.3.205
23.234.3.206
23.234.3.207
23.234.3.208
23.234.3.209
23.234.3.210
23.234.3.211
23.234.3.212
23.234.3.213
23.234.3.214
23.234.3.215
23.234.3.216
23.234.3.217
23.234.3.218
23.234.3.219
23.234.3.220
23.234.3.221
23.234.3.222
23.234.3.223
23.234.3.224
23.234.3.225
23.234.3.226
23.234.3.227
23.234.3.228
23.234.3.229
23.234.3.230
23.234.3.231
23.234.3.232
23.234.3.233
23.234.3.234
23.234.3.235
23.234.3.236
23.234.3.237
23.234.3.238
23.234.3.239
23.234.3.240
23.234.3.241
23.234.3.242
23.234.3.243
23.234.3.244
23.234.3.245
23.234.3.246
23.234.3.247
23.234.3.248
23.234.3.249
23.234.3.250
23.234.3.251
23.234.3.252
23.234.3.253
23.234.3.254
阅读本文的人还阅读: