linux服务器之间免密登录

有时为了能够使用ssh执行脚本,需要设置基于密钥文件的认证方式,取代密码认证,如下:

1、生成ssh密钥

 

 这是一个交互式命令,执行之后会询问用户密钥文件存放的位置及相应的密钥短语,本文回车默认执行。执行完毕后,会在当前用户的home目录下创建一个.ssh文件夹,里面生成两个密钥文件:id_rsa和id_rsa.pub,前者式私钥文件,后者是公钥文件。

2、分发公钥文件

 

将公钥分发到目标机器,其中user@host为目标用户和主机,如果省略user,则默认为当前用户,执行时需要输入目标用户在目标主机上的登录密码。

建议在分发时将公钥同时分发给本机,这样在访问本机时也可免密。
每个用户在.ssh目录下都有一个专门存放所有授权登录本机的公钥文件authorized_keys,在分发时,即是将公钥发送到这个文件中,相当于手工将公钥内容复制到目标机器的authorized_keys文件中(说明分发公钥时也可以手工复制)。
到此,即完成单项授权,可以在当前机器上使用指定用户免密登录到目标机器(但目标机器无法免密回访)。

3、反向授权

为了能够使服务器之间都能免密访问,需要在目标机器上同样执行上述两个步骤,执行完成后,两台服务器之间就可以互相免密登录了。

 

4、root以其他用户身份来生成公钥

sudo -u jenkins ssh-keygen -t rsa

sudo -u jenkins ssh-copy-id root@ip

#以jenkins身份登录其他服务器

sudo -u jenkins ssh root@ip

posted @ 2022-05-12 17:27  大司徒  阅读(622)  评论(0编辑  收藏  举报