ssh免密登录和集群免密登录

本文详细介绍SSH免密登录的实现过程,包括证书生成、公钥注册及使用证书登录服务器的方法。适用于集群环境下的服务器管理,提高效率并增强安全性。

ssh免密登录,

用证书登陆服务器,避免输入密码的繁琐操作,集群之间访问频繁,可以避免服务器管理密码泄露,证书为不可逆的加密,而且ssh-key还支持对密钥进行加密。
1.生成证书

ssh-keygen

在这里插入图片描述
在这里插入图片描述
2.查看公钥和私钥在.ssh中
在这里插入图片描述
3.远程登陆到服务器中时,在ssh中生成一个known_hosts,记录本地曾经访问过的服务的信息。只要成功访问到了服务器就会出现。在这里插入图片描述4.注册证书
将公钥id_rsa.pub注册到需要访问的服务器上。此刻任何拥有id_rsa的私钥都可以访问远程服务器

ssh-copy-id 远程主机名@远程主机地址

在这里插入图片描述
5.查看authorized_key,当把id_rsa.pub文件成功的注入到所访问的 服务器中该文件便会出现,记录id_rsa.pub内容,用于和id_rsa做校验。
在这里插入图片描述
在这里插入图片描述
6.之后退出重新登陆则不需要密码。
在这里插入图片描述

xshell通过证书登陆服务器

在集群管理环境下,需要在每台服务器上生成和注册证书。根据免密登录的原理,通过rsa非对称算法生成的证书私钥和公钥进行免密的操作。将id_rsa.pub注册给需要免密登录的服务器,在该服务器上会生成authorized_key,此文件会记录id_rsa.pub文件,此后任何拥有id_rsa的用户或服务器都会免密登录。无论有多少台服务器的集群,只要有一个证书的注册,将文件发送给集群的服务器。

1.下载winscp,注册,连接服务器之后将id_rsa.pub荡下来到桌面。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.通过shell建立一个会话,填写会话名称,连接地址。
在这里插入图片描述
3.用户身份验证,选择public_key,将id_rsa.pub导入shell中。
在这里插入图片描述
4.直接登录。

实现SSH免密登录集群节点有多种方法,以下为详细介绍: ### 方法一:手动配置 - **生成密钥对**:在客户端机器上生成公钥私钥。以在`root@hadoop01`机器为例,切换到`.ssh`目录,查看是否已有密钥文件。若没有,则可使用`ssh-keygen`命令生成。生成后可通过`ls`命令查看,通常会有`id_rsa`(私钥)`id_rsa.pub`(公钥)文件 [^3]。 ```bash [root@hadoop01 ~]# cd .ssh [root@hadoop01 .ssh]# ls id_rsa id_rsa.pub ``` - **配置授权文件**:将公钥文件`id_rsa.pub`复制为`authorized_keys`文件。 ```bash [root@hadoop01 .ssh]# cp id_rsa.pub authorized_keys [root@hadoop01 .ssh]# ls authorized_keys id_rsa id_rsa.pub ``` - **复制授权文件并添加密钥**:将`authorized_keys`文件拷到下一个节点,并将该节点的ssh密钥`id_rsa.pub`加入该文件中 [^3]。 - **设置文件权限**:权限过高会导致ssh无法正常执行,需要将`authorized_keys`文件权限设置为`600` [^4]。 ```bash chmod 600 ~/.ssh/authorized_keys ``` - **启用公私钥配对验证方式**:切换到root用户,使`/etc/ssh/sshd_config`文件中`PubkeyAuthentication yes`语句生效 [^4]。 - **重启ssh服务**:重启ssh服务使其生效,并验证免密登录。第一次验证`ssh localhost`时需要输入`yes`验证主机 [^4]。 ```bash systemctl restart sshd ssh localhost ``` - **主从节点实现免密登录**:将主节点公钥拷贝至各个从节点`authorized_keys`文件,再将各个从节点公钥拷贝至主节点`authorized_keys`文件 [^4]。 ### 方法二:使用`ssh-copy-id`命令 此方法相对简便,只需在客户端执行`ssh-copy-id username@server_ip`命令,即可将客户端的公钥复制到服务器的`authorized_keys`文件中。例如: ```bash ssh-copy-id root@192.168.1.100 ``` ### 方法三:脚本实现 在master节点上编写脚本实现到其他节点的ssh免密码登录。以下是一个示例脚本 [^5]: ```bash #!/usr/bin/sh for((i=1;i<3;++i)) do host="slave0"$i cat ~/.ssh/id_rsa.pub|ssh hadoop@${host} 'cat - >> ~/.ssh/authorized_keys' ssh hadoop@${host} 'chmod 600 ~/.ssh/authorized_keys' ssh root@${host} 'systemctl restart sshd' done ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值