ssh 互信设置

本贴最后更新于 2073 天前,其中的信息可能已经时过境迁

第一步、首先在要互相建立 ssh 互信的所有主机中当前用户下(互信是针对用户和 ip)执行如下命令

1、配置 hosts

2、生产密钥对

echo "ssh 互信配置开始"

ssh 互信配置开始

mkdir -p ~/.ssh
chmod 700 ~/.ssh

cd ~/.ssh

.ssh ssh-keygen -t rsa

.ssh ls -lt

总用量 16

-rw------- 1 ppzlinux ppzlinux 1675 2 月 17 21:56 id_rsa

-rw-r--r-- 1 ppzlinux ppzlinux 394 2 月 17 21:56 id_rsa.pub

-rw-r--r-- 1 ppzlinux ppzlinux 1 2 月 16 15:22 known_hosts

-rw------- 1 ppzlinux ppzlinux 789 2 月 16 14:48 authorized_keys

第二部、把所有主机的当前用户下的公钥文件 id_rsa.pub 里面的内容都复制到 authorized_keys,然后把这个文件复制到所有主机的~/.ssh 目录即可。

1、做所有主机执行如下

Cat /home/ppzlinux/.ssh/id_rsa.pub /home/ppzlinux/.ssh/authorized_keys

2、把上述每台主机执行如下

cp /home/ppzlinux/.ssh/authorized_keys /home/ppzlinux/.ssh/authorized_keys 主机名

3、如下

cat authorized_keys 主机名 1 authorized_keys 主机名 2 authorized_keys 主机名 3>authorized_keys

4、

把 3 步的 authorized_keys 文件覆盖到每台主机的/home/ppzlinux/.ssh/authorized_keys

5、每台主机上执行

chmod 600 ~/.ssh/authorized_keys

第三步、测试

1、在每台主机做 ssh 访问(包括本机自己),比如 pdsh 批量复制文件部署时,很多时候本机也要部署,因此自己也要对自己做互信才行。

ssh 远程 ip 或远程主机名(一定要先做 hosts 配置),第一此要输 yes/no,退出(exit),第二次如果能直接登陆,说明互信配置成功

2、如果第二次还要提示 yes/no,说明没配置成功

3、没互信成功情况下的问题检查,上述步骤没有缺少的前提下,检查每台机器的 authorized_keys 内容是否一样,可以比较 md5 值是否一样,

还有 known_hosts 文件之前是否已经存在,这个文件记录每次访问其他主机的信息,如果发现不一样会报错会互信成功,解决办法是清空

4、完毕。

问题:

如果主机的 ip 改过之后,要记得:mv /home/ppzlinux/.ssh/known_hosts /home/ppzlinux/.ssh/known_hosts.bak

然后重新用 ssh 登陆一次即可无密码登陆了。

总结:对方有你的公钥你就可以无密码访问它,即把 id_rsa.pub 里的内容加入对方的 authorized_keys 文件里。

注意:

$ vi /etc/ssh/sshd_config

找到以下内容,并去掉注释符”#“

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

service sshd restart

scp ~/.ssh/id_rsa.pub root@192.168.179.133:/root/.ssh/id_rsa.pub_ubuntu

然后

[root@ppzCentos6 .ssh]# cat id_rsa.pub>authorized_keys

[root@ppzCentos6 .ssh]# cat id_rsa.pub_ubuntu>>authorized_keys

直接复制粘贴有时不行哦,最好使用如下方式:

ssh-copy-id root@192.168.179.129

即把当前所在机器的当前用户的公钥复制追加到远程主机指定用户的 authorized_keys 的末尾。

  • SSH
    42 引用 • 51 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    313 引用 • 1667 回帖 • 1 关注
  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用 • 6 关注
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    324 引用 • 1395 回帖
  • Ngui

    Ngui 是一个 GUI 的排版显示引擎和跨平台的 GUI 应用程序开发框架,基于
    Node.js / OpenGL。目标是在此基础上开发 GUI 应用程序可拥有开发 WEB 应用般简单与速度同时兼顾 Native 应用程序的性能与体验。

    7 引用 • 9 回帖 • 345 关注
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 399 关注
  • FFmpeg

    FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

    22 引用 • 31 回帖 • 3 关注
  • WiFiDog

    WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。

    1 引用 • 7 回帖 • 545 关注
  • 京东

    京东是中国最大的自营式电商企业,2015 年第一季度在中国自营式 B2C 电商市场的占有率为 56.3%。2014 年 5 月,京东在美国纳斯达克证券交易所正式挂牌上市(股票代码:JD),是中国第一个成功赴美上市的大型综合型电商平台,与腾讯、百度等中国互联网巨头共同跻身全球前十大互联网公司排行榜。

    14 引用 • 102 回帖 • 405 关注
  • Electron

    Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。

    15 引用 • 136 回帖 • 7 关注
  • 创造

    你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!

    173 引用 • 990 回帖
  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    185 引用 • 318 回帖 • 344 关注
  • 电影

    这是一个不能说的秘密。

    120 引用 • 597 回帖
  • LeetCode

    LeetCode(力扣)是一个全球极客挚爱的高质量技术成长平台,想要学习和提升专业能力从这里开始,充足技术干货等你来啃,轻松拿下 Dream Offer!

    209 引用 • 72 回帖 • 2 关注
  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    19 引用 • 31 回帖 • 2 关注
  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖 • 2 关注
  • Ubuntu

    Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

    123 引用 • 168 回帖
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 54 关注
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 407 关注
  • Spark

    Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。

    74 引用 • 46 回帖 • 549 关注
  • 工具

    子曰:“工欲善其事,必先利其器。”

    275 引用 • 682 回帖
  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    4 引用 • 7 回帖 • 3 关注
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖
  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 685 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    492 引用 • 1383 回帖 • 375 关注
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    476 引用 • 899 回帖
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    35 引用 • 35 回帖