linux下使用ssh-keygen生成公钥和私钥进行ssh免密登录

集群内免密登录可以更方便的对集群中的机器进行管理和操作,我们今天就来操作一下如何生成密钥,和不同的密钥对应的不同的登录方式。

1.生成登录密钥

进入root下的.ssh目录执行命令生成公钥和私钥

ssh-keygen -t  rsa

微信截图_20240320170742.png

目录下生成了两个文件id_rsa和id_rsa.pub,分别是公钥和私钥,我们需要调整下两个密钥的权限

chmod 700 ~/.sshtouch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

公钥可以用来发布到其他节点的authorized_keys文件内,然后本机就可以通过免密等其他节点了。

2.公钥的使用

注意使用2.1或者2.2其中一种方式分发到目标节点的authorized_keys文件内即可。

2.1.使用手工复制公钥到目标节点

我们需要将公钥文件导入authorized_keys文件并分发到要免密登录的机器

cat id_rsa.pub >> authorized_keys

然后讲上述工要认证文件传输到要远程的机器

scp authorized_keys root@192.168.1.72:/root/.ssh/

输入密码传输完成以后,就可以直接使用ssh 192.168.1.72免密登录这台机器了。

2.2.使用ssh命令复制公钥到目标节点

也可以直接通过以下命令来复制到需要做免密节点的authorized_keys文件内。但是本机也是需要创建authorized_keys,方便密钥循环分发

cat id_rsa.pub >> authorized_keysssh-copy-id root@192.168.1.72

注意是公钥分发到哪台机器,本机就可以直接免密登录到哪台机器。

如果是所有机器都要免密登录,那么循环将所登录机器的公钥追加到要免密登录的authorized_keys文件,然后最后一台机器的公钥追加到第一台机器即可。

3.私钥的使用

使用私钥登录的话,我们还需要调整sshd_config的配置

vim /etc/ssh/sshd_configPermitRootLogin yes #允许root账户登录
PubkeyAuthentication yes #允许使用密钥登录
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no #关闭密码登录

保存退出以后需要重启sshd服务

systemctl restart sshd

然后可以把id_rsa发给需要登录的机器,可以使用如下命令进行免密登录

ssh -i ./id_rsa root@192.168.1.72

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.sulao.cn/post/283

评论列表

0%