Linux服务器配置SHH免密互通
服务器A 172.25.11.11,
服务器B 172.25.11.12
在服务器 A 上配置
假设服务器 A 的IP地址为 172.25.11.11
,我们将在这台服务器上生成密钥对并将公钥复制到服务器 B 上。
-
生成密钥对:
打开终端,执行以下命令生成密钥对。在生成过程中,你可以选择保留默认路径和设置空密码以简化使用,也可以根据需要进行修改。
当执行
ssh-keygen -t rsa
命令后,系统会提示你输入几个选项。下面是各个选项的解释和建议的操作:-
Enter file in which to save the key (/root/.ssh/id_rsa):
- 默认情况下,系统会建议你保存密钥的路径和文件名。按回车键接受默认的路径和文件名通常是最简单的选择。如果你有特殊需求,可以输入自定义的路径和文件名,例如
/path/to/your/ssh/key
.
- 默认情况下,系统会建议你保存密钥的路径和文件名。按回车键接受默认的路径和文件名通常是最简单的选择。如果你有特殊需求,可以输入自定义的路径和文件名,例如
-
Enter passphrase (empty for no passphrase):
- 这一步是为你的私钥设置一个密码。密码可以为空,也可以输入一个密码来加强私钥的安全性。如果你希望私钥在使用时不需要输入密码,则直接按回车键即可留空。
这将生成两个文件:
~/.ssh/id_rsa
:私钥文件~/.ssh/id_rsa.pub
:公钥文件 在 /root/.ssh目录下复制公钥到服务器 B:
使用
ssh-copy-id
命令将服务器 A 的公钥复制到服务器 B 上。在终端执行以下命令-
这会提示输入服务器 B 的密码(usernameB 的密码),然后这个命令会将本地的公钥
~/.ssh/id_rsa.pub
的内容追加到服务器 B 上的~/.ssh/authorized_keys
文件中。 -
验证 SSH 代理是否正常工作:
可以运行以下命令来查看当前 SSH 代理中已加载的私钥:
如果提示Could not open a connection to your authentication agent.
表示你的系统中没有运行 SSH 代理(SSH agent),因此
ssh-add
命令无法将私钥添加到代理中。SSH 代理负责管理私钥并在需要时提供给 SSH 客户端。解决方法:
要解决这个问题,
-
启动 SSH 代理:
在终端中运行以下命令来启动 SSH 代理:
这会启动 SSH 代理并设置必要的环境变量。
添加私钥到 SSH 代理:
现在再次运行
ssh-add
命令,将本机私钥添加到 SSH 代理中:如果私钥设置了密码,此时可能需要输入私钥密码。如果私钥没有密码,则直接执行命令即可。
设置权限(如果需要):
确保以下目录和文件权限设置正确,这是为了确保SSH可以安全地使用你的密钥对进行认证。
ssh-add ~/.ssh/id_rsachmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys配置A到B的已经完成,B到A一样的步骤 -
-
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤