当前位置: 首页 > web >正文

Linux ssh免密登陆设置

使用 ssh-copy-id 命令来设置 SSH 免密登录,并确保所有相关文件和目录权限正确设置,可以按照以下步骤进行:

步骤 1:在源服务器(198.120.1.109)生成 SSH 密钥对
如果还没有生成 SSH 密钥对,首先需要在源服务器上生成它:

ssh-keygen -t rsa -b 2048

按提示操作,可以直接按 Enter 使用默认路径(~/.ssh/id_rsa)和空密码。

完成后,id_rsa 是私钥,id_rsa.pub 是公钥,它们将保存在 ~/.ssh/ 目录下。

步骤 2:使用 ssh-copy-id 将公钥复制到目标服务器(198.120.1.113)
在源服务器 198.120.1.109 上,使用以下命令将源服务器的公钥复制到目标服务器 198.120.1.113:

ssh-copy-id root@198.120.1.113

将 root替换为目标服务器 198.120.1.113 你自己的用户名。

该命令会要求你输入目标服务器的密码,输入正确的密码后,公钥(id_rsa.pub)将被自动复制到目标服务器的 ~/.ssh/authorized_keys 文件中。

步骤 3:确认目标服务器(198.120.1.113)权限设置
确保目标服务器的 ~/.ssh 目录和 authorized_keys 文件权限正确设置,否则免密登录会失败。

登录目标服务器 198.120.1.113:

ssh remote_user@198.120.1.113
确保目标服务器的 ~/.ssh 目录权限为 700,authorized_keys 文件权限为 600:

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

~/.ssh 目录的权限需要为 700,确保只有文件所有者可以访问和修改该目录。

authorized_keys 文件的权限需要为 600,确保只有文件所有者可以读取和写入该文件。

步骤 4:确认源服务器(198.120.1.109)权限设置
在源服务器 198.120.1.109 上,确保 ~/.ssh 目录和 id_rsa 文件权限也正确:

登录源服务器 198.120.1.109:

ssh root@198.120.1.109

确保源服务器的 ~/.ssh 目录权限为 700,id_rsa 文件权限为 600:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa

~/.ssh 目录的权限需要为 700。

id_rsa 文件的权限需要为 600,确保只有文件所有者可以读取该私钥。

步骤 5:确认免密登录是否成功
现在,你可以测试源服务器是否可以免密登录到目标服务器。执行以下命令,检查是否能够成功登录而不需要输入密码:

ssh root@198.120.1.113

如果一切配置正确,你应该可以直接登录目标服务器,而不需要输入密码。

步骤 6:反向配置(如果需要)
如果你还希望从目标服务器(198.120.1.113)免密登录到源服务器(198.120.1.109),你可以在目标服务器上生成 SSH 密钥,并使用 ssh-copy-id 将目标服务器的公钥复制到源服务器的 authorized_keys 文件中。具体步骤与上面相同。

在目标服务器(198.120.1.113)上生成 SSH 密钥对:

ssh-keygen -t rsa -b 2048

将目标服务器的公钥复制到源服务器的 authorized_keys 文件中:

ssh-copy-id remote_user@198.120.1.109
确保源服务器上的 ~/.ssh 目录和 authorized_keys 文件权限正确设置:

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

测试是否可以从目标服务器免密登录到源服务器:

ssh root@198.120.1.109
总结:
ssh-copy-id 命令帮助你将公钥复制到目标服务器的 ~/.ssh/authorized_keys 文件中,以实现免密登录。

确保目标服务器和源服务器的 .ssh 目录和文件权限正确设置:~/.ssh 设置为 700,authorized_keys 和 id_rsa 设置为 600。

使用上述步骤,你可以在两台服务器之间实现 SSH 免密登录。

http://www.xdnf.cn/news/1078.html

相关文章:

  • 【ECharts】ECharts曲线图节点点击事件实现
  • React18+ 项目搭建-从初始化、技术选型到开发部署的全流程规划
  • ProxySQL 性能调优实战案例
  • npm的基本使用安装所有包,安装删除指定版本的包,配置命名别名
  • 遨游通讯发布国产化旗舰三防手机AORO AU1:以自主可控重塑工业安全
  • 基于 Vue 的Tiptap 富文本编辑器使用指南
  • 【MCP Node.js SDK 全栈进阶指南】中级篇(4):MCP错误处理与日志系统
  • 【MCP Node.js SDK 全栈进阶指南】初级篇(3):MCP资源开发基础
  • TextCNN 模型文本分类实战:深度学习在自然语言处理中的应用
  • 宏碁笔记本电脑怎样开启/关闭触摸板
  • 高并发抢券系统设计与落地实现详解
  • 【git】subtree拆分大的git库到多个独立git库
  • @Configuration注解对应实现implements WebMvcConfigurer的配置不生效问题。
  • Java实例化对象都有几种方式
  • React 单一职责原则:优化组件设计与提高可维护性
  • 马浩棋:产通链CT-Chain 破局不动产 RWA,引领数智金融新变革
  • 程序生成随机数
  • 什么是API
  • 数智读书笔记系列030《曲折的职业道路:在终身工作时代找准定位》与《做自己的教练:战胜工作挑战掌控职业生涯》
  • 离线-DataX
  • 【AI微信小程序开发】大转盘小程序项目代码:自设转盘选项和概率(含完整前端+后端代码)
  • 刷题之路:C++ 解题分享与技术总结
  • Yocto项目实战教程-第7章定制镜像菜谱与内核菜谱-7.2小节-定制应用程序
  • 眼镜眨巴眨巴-一步几个脚印从头设计数字生命2——仙盟创梦IDE
  • OpenHarmony OS 5.0与Android 13显示框架对比
  • 【python】如何将文件夹及其子文件夹下的所有word文件汇总导出到一个excel文件里?
  • 操作系统-用户级-内核级线程
  • 西门子地址表规划中,如WM200与WM201这样相邻地址冲突问题
  • 工厂模式:工厂方法模式 和 抽象工厂模式
  • VulnHub-DarkHole_1靶机渗透教程