1 SSH介绍
ssh命令用于远程登录到其他计算机,实现安全的远程管理。
基本语法:
ssh 域名/IP地址
示例:
(1)从hadoop100服务器上远程连接hadoop101服务器
[hadoop@hadoop100 ~]$ ssh hadoop101
如果出现如下内容
Are you sure you want to continue connecting (yes/no)?
输入
yes
,并回车
(2)回退到hadoop100服务器:
[hadoop@hadoop101 ~]$ exit
2 无密钥配置
2.1 免密登陆原理
ssh-keygen是SSH服务下的一个生成、管理和转换认证密钥的命令工具。包括两种密钥类型DSA和RSA通过公私钥的验证可以使服务器与服务器之间实现无密码通讯。
ssh-keygen常用参数
-t | 指定生成密钥的类型,默认使用SSH2d的rsa |
-f | 指定生成密钥的文件名,默认id_rsa(私钥id_rsa,公钥id_rsa.pub) |
-P | 提供旧密码,空表示不需要密码(-P ‘’) |
-N | 提供新密码,空表示不需要密码(-N ‘’) |
-b | 指定密钥长度(bits),RSA最小要求768位,默认是2048位;DSA密钥必须是1024位(FIPS 1862标准规定) |
-C | 提供一个新注释 |
-R hostname | 从known_hosta文件中删除所有属于hostname的密钥 |
2.2 生成公钥和私钥
[hadoop@hadoop100 ~]$ cd /home/hadoop/.ssh
[hadoop@hadoop100 .ssh]$ ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
2.3 将公钥拷贝到要免密登录的目标机器上
[hadoop@hadoop100 .ssh]$ ssh-copy-id hadoop100
[hadoop@hadoop100 .ssh]$ ssh-copy-id hadoop101
[hadoop@hadoop100 .ssh]$ ssh-copy-id hadoop102
注意:还要在其它两台克隆机hadoop101、hadoop102上配置下无密登陆。(重复2、3步骤)
3 问题集
(1)拷贝公钥到目标服务器报错:
解决步骤:删除known_hosts配置里面该IP信息。
(2)调用集群分发给hadoop101服务器报错,hadoop102服务器正常,报错问题如下:
ECDSA host key for hadoop101 has changed and you have requested strict checking.Host key verification failed.
这种情况可能是因为ssh连接hadoop101服务器之后,服务器又重新安装了系统。
解决方法:从known_hosta文件中删除所有属于hostname的密钥(注意:第一次连接时就会在该目录.ssh目录下生成该密钥文件known_hosta文件)。
ssh-keygen -R IP地址