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
分类:
Linux
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)