SSH免密登陆
什么是ssh
ssh
:一种协议标准,与其他协议telnet,ftp等,ssh的优势在于安全远程登陆登陆(约定)
openssh
:是ssh远程安全登陆的开源实现(软件)
ssh远程安全登录的工作原理(基于口令)
- 1.客户端发起远程登录请求
- 2.服务端接收请求,将自己的主机公钥发送给客户端
注:公钥(加密) - 3.客户端将主机发送过来的公钥进行hash算法,得出主机公钥的公钥指纹,核对公钥指纹是否真确,以确认当前连接的主机是否是我们要登录的主机
在hadoop02上查看公钥指纹 ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
hadoop01上验证公钥指纹 - 4.核对过公钥指纹后,输入yes,客户端会将服务端的公钥保存在HOME/.ssh/knowhosts文件中cat HOME/.ssh/knowhosts文件中catHOME/.ssh/knowhosts文件中catHOME/.ssh/know_hosts 查看保存在客户端的公钥 5.客户端将密码用服务端的公钥进行加密发送给服务端
- 6.服务端接收加密后的密码,用存在/etc/ssh下的对应的私钥进行解密,然后对比密码,返回登录结果
注:私钥(解密)
ssh免密码登录(基于秘钥的)
注:免密登录不是万能的。免密登录指的是从一台主机A的用户Auser,使用Buser用户(主机B的一个用户)免密码登录到主机B。
只能以hadoop01上的用户root 使用root(hadoop02的)用户登录到hadoop02
root@hadoop01=====>root@hadoop02
存在严格的对应关系
- 1.在客户端上生成一对秘钥(公钥和私钥)
ssh-keygen -t rsa -P “” -f ~/.ssh/id_rsa
注: -t 加密算法 -P 私钥是否使用密码 -f 指定生成秘钥对的保存位置 - 2.将客户端公钥发送给服务端
ssh-copy-id root@hadoop02 hadoop01上的root用户的公钥拷贝给hadoop02的root用户的家目录下
注:要把公钥追加到服务端对应用户的HOME/.ssh/authorizedkeys文件中,还要修改 HOME/.ssh/authorized_keys文件权限 - 3.客户端请求登录服务端(带着自己的用户名和主机名)
- 4.服务端根据客户端的用户名和主机名查找对应的公钥,将一个随机字符串用该公钥加密后发送给客户端
- 5.客户端用自己的私钥将加密字符串解密,再将解密的字符串发送给服务端
- 6.服务端比对发送出去的字符串和接收的字符串是否相同,返回登录结果
使用openssh
这个软件实现hadoop01免密登陆hadoop02
1、hadoop01下载openssh
2、hadoop01登陆hadoop02
只是登陆,没有免密,所以需要输入yes进行确定,并且要输入密码
3、hadoop01生产密钥,并发送给hadoop02
4、查看是否成功
远程拷贝命令scp(基于ssh的远程安全登录的)
所有机器上安装openssh客户端
- 1.远程拷贝文件
- 2.远程拷贝目录
- 3.下载文件到本地
- 4.下载目录到本地