ssh 互信设置

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

第一步、首先在要互相建立 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
    45 引用 • 51 回帖

相关帖子

欢迎来到这里!

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

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

推荐标签 标签

  • OpenStack

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

    10 引用 • 3 关注
  • Pipe

    Pipe 是一款小而美的开源博客平台。Pipe 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    133 引用 • 1124 回帖 • 117 关注
  • OneDrive
    2 引用
  • Lute

    Lute 是一款结构化的 Markdown 引擎,支持 Go 和 JavaScript。

    28 引用 • 197 回帖 • 32 关注
  • C++

    C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。

    107 引用 • 153 回帖 • 1 关注
  • V2Ray
    1 引用 • 15 回帖
  • Angular

    AngularAngularJS 的新版本。

    26 引用 • 66 回帖 • 545 关注
  • JWT

    JWT(JSON Web Token)是一种用于双方之间传递信息的简洁的、安全的表述性声明规范。JWT 作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以 JSON 的形式安全的传递信息。

    20 引用 • 15 回帖 • 23 关注
  • 微软

    微软是一家美国跨国科技公司,也是世界 PC 软件开发的先导,由比尔·盖茨与保罗·艾伦创办于 1975 年,公司总部设立在华盛顿州的雷德蒙德(Redmond,邻近西雅图)。以研发、制造、授权和提供广泛的电脑软件服务业务为主。

    8 引用 • 44 回帖
  • App

    App(应用程序,Application 的缩写)一般指手机软件。

    91 引用 • 384 回帖
  • Kotlin

    Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,由 JetBrains 设计开发并开源。Kotlin 可以编译成 Java 字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。在 Google I/O 2017 中,Google 宣布 Kotlin 成为 Android 官方开发语言。

    19 引用 • 33 回帖 • 79 关注
  • 强迫症

    强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。

    15 引用 • 161 回帖 • 2 关注
  • CAP

    CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

    12 引用 • 5 回帖 • 636 关注
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    168 引用 • 595 回帖
  • 博客

    记录并分享人生的经历。

    273 引用 • 2388 回帖
  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 666 关注
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 554 关注
  • Scala

    Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。

    13 引用 • 11 回帖 • 158 关注
  • jsDelivr

    jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。

    5 引用 • 31 回帖 • 104 关注
  • Hibernate

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

    39 引用 • 103 回帖 • 724 关注
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    556 引用 • 675 回帖
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    143 引用 • 442 回帖
  • 分享

    有什么新发现就分享给大家吧!

    248 引用 • 1794 回帖
  • 互联网

    互联网(Internet),又称网际网络,或音译因特网、英特网。互联网始于 1969 年美国的阿帕网,是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。

    99 引用 • 367 回帖
  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    5 引用 • 18 回帖 • 176 关注
  • WebSocket

    WebSocket 是 HTML5 中定义的一种新协议,它实现了浏览器与服务器之间的全双工通信(full-duplex)。

    48 引用 • 206 回帖 • 295 关注
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖