SSH无密码验证登录的实现
2014-12-16 21:23
225 查看
1. 前期准备:
检查是否安装了SSH服务
rpm -qa | grep openssh
我的显示:
如果没有安装则执行一下安装:
yum -y install ssh
service sshd restart 启动服务
2. SSH无密码验证的原理
Master作为客户端,要实现无密码公钥认证,连接到服务器Salve上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Salve上。当Master通过SSH链接到Salve上时,Salve会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Salve,Salve确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,期间不需要手工输入密码,重要的过程是将Master上产生的公钥复制到Salve上。
3. 实际操作过程
3.1 Master实现无密码登录Salve
1> 以root用户登录,更改SSH的配置文件
vi /etc/ssh/sshd_config
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径
重启SSH服务: service sshd restart
2> 以新建用户hadoop身份登录
su hadoop
ssh-keygen -t rsa 生成密钥文件,一切按默认的方式生成,密钥文件生成后默认存放位置为/home/hadoop(你的用户名)/.ssh
查看生成文件: ll .ssh 下面的这两个即为生成的密钥对
将id_rsa.pub加到授权的key里面去:cat id_rsa.pub >> authorized_keys
修改authorized_keys的权限,(这一步很重要不然的话,SSH时仍然需要密码)
chmod 600 authorized_keys
修改/home/hadoop的权限
chmod 700 hadoop
查看本机是否可以SSH无需密码登录: ssh localhost
OK , 以上证明本机登录成功。
接下来要做的就是将Master的公钥id_rsa.pub复制到Salve上去,并加入到授权的key中。
scp ~/.ssh/id_rsa.pub hadoop@192.168.2.93:~/
scp ~/.ssh/id_rsa.pub hadoop@192.168.2.85:~/
由于首次登录还没有添加认证,这次仍然会提示输入密码
以hadoop身份登录Salve节点(注意此前意见以root身份对ssh的配置进行修改,方式同上)
如果不存在.ssh 则创建文件夹.ssh,并将权限修改为700,这一步非常重要因为默认创建的.ssh文件夹的权限为700,手工创建不修改权限的话不能成功,修改权限后将该id_rsa.pub添加到授权的key中:
mkdir .ssh
chmod 700 .ssh
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
修改authorized_keys的权限为600
chmod 600 ~/.ssh/authorized_keys
进入Master节点,检查能否登录Salve节点:
ssh datanode1
OK , 在Master上无密码登录Salve成功
3.2 同样在Savle上生成密钥对,并添加到Master授权中,就可以实现相互无密码登录了。
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/id_rsa.pub hadoop@192.168.171.131:~/
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
验证登录即可。
注意几点:
1> SSH的配置文件一定要修改,而且修改后要重启
2> 认证文件一定要采用追加方式:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3> authorized_keys文件的权限一定要修改为600
4> .ssh的文件如果是手动创建的话权限一定要修改为700
5>/home/hadoop的权限一定要修改为700
检查是否安装了SSH服务
rpm -qa | grep openssh
我的显示:
如果没有安装则执行一下安装:
yum -y install ssh
service sshd restart 启动服务
2. SSH无密码验证的原理
Master作为客户端,要实现无密码公钥认证,连接到服务器Salve上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Salve上。当Master通过SSH链接到Salve上时,Salve会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Salve,Salve确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,期间不需要手工输入密码,重要的过程是将Master上产生的公钥复制到Salve上。
3. 实际操作过程
3.1 Master实现无密码登录Salve
1> 以root用户登录,更改SSH的配置文件
vi /etc/ssh/sshd_config
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径
重启SSH服务: service sshd restart
2> 以新建用户hadoop身份登录
su hadoop
ssh-keygen -t rsa 生成密钥文件,一切按默认的方式生成,密钥文件生成后默认存放位置为/home/hadoop(你的用户名)/.ssh
查看生成文件: ll .ssh 下面的这两个即为生成的密钥对
将id_rsa.pub加到授权的key里面去:cat id_rsa.pub >> authorized_keys
修改authorized_keys的权限,(这一步很重要不然的话,SSH时仍然需要密码)
chmod 600 authorized_keys
修改/home/hadoop的权限
chmod 700 hadoop
查看本机是否可以SSH无需密码登录: ssh localhost
OK , 以上证明本机登录成功。
接下来要做的就是将Master的公钥id_rsa.pub复制到Salve上去,并加入到授权的key中。
scp ~/.ssh/id_rsa.pub hadoop@192.168.2.93:~/
scp ~/.ssh/id_rsa.pub hadoop@192.168.2.85:~/
由于首次登录还没有添加认证,这次仍然会提示输入密码
以hadoop身份登录Salve节点(注意此前意见以root身份对ssh的配置进行修改,方式同上)
如果不存在.ssh 则创建文件夹.ssh,并将权限修改为700,这一步非常重要因为默认创建的.ssh文件夹的权限为700,手工创建不修改权限的话不能成功,修改权限后将该id_rsa.pub添加到授权的key中:
mkdir .ssh
chmod 700 .ssh
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
修改authorized_keys的权限为600
chmod 600 ~/.ssh/authorized_keys
进入Master节点,检查能否登录Salve节点:
ssh datanode1
OK , 在Master上无密码登录Salve成功
3.2 同样在Savle上生成密钥对,并添加到Master授权中,就可以实现相互无密码登录了。
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/id_rsa.pub hadoop@192.168.171.131:~/
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
验证登录即可。
注意几点:
1> SSH的配置文件一定要修改,而且修改后要重启
2> 认证文件一定要采用追加方式:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3> authorized_keys文件的权限一定要修改为600
4> .ssh的文件如果是手动创建的话权限一定要修改为700
5>/home/hadoop的权限一定要修改为700
相关文章推荐
- SSH无密码验证登录实现
- SSH实现无密码验证登录
- 嵌入式 SSH无密码验证登录的实现
- SSH无密码验证登录的实现(转摘)
- SSH无密码验证登录的实现
- RHCE_LAB(2)SSH远程登录自动验证(不输入用户登录密码)的实现
- SSH无密码验证登录的实现
- RHCE_LAB(2)SSH远程登录自动验证(不输入用户登录密码)的实现
- SSH实现无密码验证登录
- SSH无密码验证登录的实现
- 实现安全的免密码ssh登录
- 使用ssh公钥实现ssh免密码登录
- ssh自动输入密码登录服务器/ssh免输入密码登录/非交互ssh 密码验证
- ssh-keygen+ssh-copy-id 在linux下实现ssh无密码登录访问
- 实现无密码SSH登录
- 通过SSH证书实现Putty免密码登录CentOS
- shell 生成public key,实现免密码SSH登录
- 实现ssh无密码登录
- 使用ssh公钥实现ssh免密码登录
- ssh 无密码登录验证技术