验证ssh免密登录_SSH无密码验证登录的实现

1. 前期准备:

检查是否安装了SSH服务和rsync服务(rsync是一个远程数据同步工具,可以通过LAN/WLAN快速同步多台主机之间的文件)

rpm -qa | grep openssh

rpm -qa | grep rsync

我的Centos 5.6下的显示:

如果没有安装则执行一下安装:

yum install ssh

yum install rsync

service sshd restart 启动服务

1. SSH无密码验证的原理

Master作为客户端,要实现无密码公钥认证,连接到服务器Salve上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Salve上。当Master通过SSH链接到Salve上时,Salve会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Salve,Salve确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,期间不需要手工输入密码,重要的过程是将Master上产生的公钥复制到Salve上。

2. 实际操作过程

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

查看本机是否可以SSH无需密码登录: ssh localhost

OK , 以上证明本机登录成功。

接下来要做的就是将Master的公钥id_rsa.pub复制到Salve上去,并加入到授权的key中。

scp ~/.ssh/id_rsa.pub hadoop@192.168.171.133:~/

由于首次登录还没有添加认证,这次仍然会提示输入密码

以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 192.168.171.133

OK , 在Master上无密码登录Salve成功

3.1.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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
验证 SSH 登录是否已经配置成功,可以按照以下步骤进行: 1. 在本地机器上打开一个终端窗口,输入以下命令: ``` ssh user@remote_server ``` 其中 `user` 是远程服务器的用户名,`remote_server` 是远程服务器的 IP 地址或者域名。如果 SSH 登录已经配置成功,将会直接登录到远程服务器上,而不需要输入密码。 2. 如果第一步中没有直接登录到远程服务器上,而是提示输入密码,说明 SSH 登录还没有配置成功,需要按照以下步骤进行配置: - 在本地机器上生成 SSH 钥对,可以使用以下命令: ``` ssh-keygen ``` 按照提示输入钥保存路径和密码等信息,生成 SSH 钥对。 - 将本地机器上生成的公钥复制到远程服务器上,可以使用以下命令: ``` ssh-copy-id user@remote_server ``` 其中 `user` 是远程服务器的用户名,`remote_server` 是远程服务器的 IP 地址或者域名。该命令会将本地机器上的公钥复制到远程服务器的 `authorized_keys` 文件中,从而实现 SSH 登录。 - 重新打开一个终端窗口,输入以下命令: ``` ssh user@remote_server ``` 其中 `user` 是远程服务器的用户名,`remote_server` 是远程服务器的 IP 地址或者域名。如果 SSH 登录已经配置成功,将会直接登录到远程服务器上,而不需要输入密码。 总之,要验证 SSH 登录是否已经配置成功,可以尝试使用 `ssh` 命令登录远程服务器,如果可以直接登录到远程服务器而不需要输入密码,就说明 SSH 登录已经配置成功。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值