Linux创建SSH信任关系
Linux服务器创建信任关系可以解决远程执行命令、远程传输文件多次手工输入的麻烦。可以实现环境一键打包备份。
测试环境
SuSE
手工创建
假设服务器A与B间要建立信任关系。用户想从服务器A免密码登录服务器B执行命令或者上传文件到服务器B。
1、登录服务器A,执行ssh-keygen -t rsa。按照提示默认操作即可(按enter)。在~/.ssh目录下会生成私钥文件id_rsa和公钥文件id_rsa.pub。
2、scp id_rsa.pub ${user}@${serverB}:~。将公钥文件id_rsa.pub上传到服务器B的的服务器家目录下。
3、登录服务器B,执行cat id_rsa.pub >> ~/.ssh/authorized_keys。将公钥文件内容添加到authorized_keys文件中。如果没有.ssh目录,可以手工创建。
4、登录服务器A,执行ssh ${user}@${serverB}测试,如果不出现提示密码输入直接登录成功,表示ssh信任关系建立成功。后续在服务器用户${user}下可以免密码操作。
设计思路
1、利用expect命令,参考手工创建步骤完成程序设计
使用方法
1、下载代码:createSSH.sh,上传到任一用户的指定目录下。
2、执行chmod +x createSSH.sh,赋可执行权限。
3、执行如命令:./createSSH oracle@192.168.0.1 oracle 。表示为./createSSH 远程用户@远程服务器IP 远程用户密码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义