工作中有时我们需要用一台服务器去控制另一台服务器执行命令,或者将一些文件拷贝到另一台服务器上,但是这种操作指令默认是需要输入密码的,如果频繁操作的话就会很麻烦,或者如果用代码控制服务器执行命令时需要密码确认也比较麻烦,所以这时候就需要免密登录,给服务器之间建立信任关系。

其实这个原理很简单,就是在主机上生成秘钥,将公钥拷贝给各个被信任的服务器,登录时通过主机自留的私钥来解密,从而实现免密登录

那么怎么做呢?只需要简单的五个步骤,方法如下:

1.cd /root/.ssh(前三步在主机上执行)

[root@node1 /]# cd /root/.ssh/
[root@node1 .ssh]#

这里输入cd ~/.ssh也是一样的

[root@node1 /]# cd ~/.ssh/
[root@node1 .ssh]#

2.ssh-keygen -t rsa 然后按三次回车直到生成完毕

[root@node1 .ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:CdKRh0LZTLzxp8Z6TxDuUccwtdUviTkz5jBg6SQwW0g root@node1
The key's randomart image is:
+---[RSA 2048]----+
|   oEO+o .o.. .. |
|    +=O.*  + o  .|
|    o.oX... +o ..|
|     ..oo++.B o .|
|       .So = + . |
|       .+o  .    |
|       o. .      |
|      . ..       |
|       . ..      |
+----[SHA256]-----+

3.cat /root/.ssh/id_rsa.pub 将内容复制

cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDT4M7MNKaWW9n/E2ucr7nbMx41vPMYS+ubX5RbCDTKBLrk0PzygUly6rMEYCT3QA9TA1FwPXQu0yM+qI/QRRTmPtkoDxP7X+tUlbTxAIvh2EUqgKRBOPBGjvnRVX+J2vTpxJcx4hXQDGSNFRCC6YuHJYyoTPtQ7XgQ7zg9bggAHnkVD9ZVagmBfNbCvauMsknAcYtbBiu1pXy14YMxo4C0vzDTgfudDgXfcxlFXFqnUDPU6CUdcjzEb7VluB4anfAjPxTxcaQR/564WMQVjKBay38sWnwWl2V8iYSzlPugB+/eLjhLwJ/j0w3LyMgE0cueayAvHCAmMyByjCYOVcu3 root@node1

4.登陆到被信任主机上 vim /root/.ssh/authorized_keys 将刚才的内容复制过来

这里需要注意的是,如果你的服务器没有做过ssh登录的话这里是没有ssh文件夹的,需要新建一个,如果有就不需要了

另外,如果你无法直接登录被信任的主机,也可以用scp指令,这里就不再赘述了

[root@node3 ~]# mkdir /root/.ssh
[root@node3 ~]# cd /root/.ssh/
[root@node3 .ssh]# vim authorized_keys

把刚刚复制的内容粘贴过来就好(按i进入编辑模式,然后粘贴)

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDT4M7MNKaWW9n/E2ucr7nbMx41vPMYS+ubX5RbCDTKBLrk0PzygUly6rMEYCT3QA9TA1FwPXQu0yM+qI/QRRTmPtkoDxP7X+tUlbTxAIvh2EUqgKRBOPBGjvnRVX+J2vTpxJcx4hXQDGSNFRCC6YuHJYyoTPtQ7XgQ7zg9bggAHnkVD9ZVagmBfNbCvauMsknAcYtbBiu1pXy14YMxo4C0vzDTgfudDgXfcxlFXFqnUDPU6CUdcjzEb7VluB4anfAjPxTxcaQR/564WMQVjKBay38sWnwWl2V8iYSzlPugB+/eLjhLwJ/j0w3LyMgE0cueayAvHCAmMyByjCYOVcu3 root@node1
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~

5.测试ssh就行了

这时候已经可以免密登录了

[root@node1 .ssh]# ssh 192.168.2.211
Last login: Sun Jun 28 15:52:18 2020 from 192.168.2.101
[root@node3 ~]# exit
登出
Connection to 192.168.2.211 closed.

Linux主机之间建立信任 公钥私钥 ssh免密登录 一台主机直接控制另一台主机执行命令相关推荐

  1. Linux运维:Shell脚本实现ssh免密登录远程服务器

    LInux系统日常运维过程中,经常需要在本地运行脚本执行对远程主机的命令,正常情况下,ssh登录远程服务器时会提示输入密码,这会影响到脚本的自动执行(因为shell脚本中没有自动填充密码的命令).有三 ...

  2. ssh 免密登录_技术漫谈 |非交互式大规模主机群信任登录认证及其容器化实现

    原创作者: 清如许 导 读 阅读本文您将了解到:配置免密信任登录会极大地便利Ansible/Breeze 工具管理主机群:应用非交互式方法安全便捷地建立主机间 SSH 信任登录关系:应用多并发技术快速 ...

  3. Linux两台主机之间建立信任关系

    Linux两台主机之间建立信任关系 一般用ssh命令访问另一台机器,或者用scp命令从别的机器拷贝数据和文件,都要输入对应账户的密码.而在两台机器之间建立信任关系,则可以省略输入密码的过程. 一  : ...

  4. Linux 两台主机之间建立信任关系方式及基本原理

    前言: 去年学过一段时间的现代密码学,最近在配置github, Linux主机之间建立信任关系的时候都用到了其中一些知识,所以刚好整理一下,想直接看操作方式的可直接拉到下面 密码学基本知识 一 现代密 ...

  5. 关于设置不同linux主机之间ssh免密登录简易方法

    2019独角兽企业重金招聘Python工程师标准>>> 在linux日常中,经常会有ssh链接其他主机服务器的action,也学习过大家日常用配置ssh免密登录的方法. 小编今天在这 ...

  6. ssh免密登录(使用公钥私钥对登录)

    =========两台(多台)机器之间实现ssh免密登录(实质上是使用公钥 私钥对)================ 关于公钥私钥对 一般ssh免密登录 采用的ssh的rsa密钥: id_rsa    ...

  7. 笔记:一台主机上配置多个私钥实现ssh免密登录

    笔记:一台主机上配置多个私钥实现ssh免密登录 一 背景 现有主机已经成功配置了对其他主机的ssh免密登录,在本地已经保存了GitHub的私钥.目前需要在这台主机上克隆GitHub自己已创建仓库,使用 ...

  8. linux上ssh免密登录原理及实现

    因为我的服务器集群需要回收日志到中央进行统一处理,所以需要建立ssh互信关系实现免密登录.关于ssh的使用大家可能都很熟悉了,我们今天主要来讲下ssh连接和免密登录的原理. scp 传输文件 scp( ...

  9. linux 配置免密码登录,Linux - 配置SSH免密登录 - “ssh-keygen”的基本用法

    1 什么是SSH 引用百度百科的说明: SSH 为 Secure Shell的缩写,由 IETF 的网络小组(Network Working Group)所制定:它是建立在应用层基础上的安全协议. S ...

最新文章

  1. 《精通Nginx》——2.8 完整的样本配置文件
  2. 错误:Parameter ‘0‘ not found.Available parameters are [arg1, arg0, param1, param2]的解决方法
  3. SSI注入(server side includes injection 服务器端包含注入)
  4. Android --- 命名规范
  5. 在CENTOS7下安装kubernetes填坑教程(原创)
  6. 从个人到团队:思维转变是关键
  7. 外部中断0——51程序
  8. 使用ubuntu过程中遇到的问题汇总
  9. 2019年,瑞云渲染做了这些事……
  10. Node.js 与 JavaScript 基金会正式合并,JS 喜提新主场
  11. 爬虫数据库一些简单的设计逻辑
  12. 如何在Azure中配置SQL Server 2008 R2故障转移群集实例
  13. 计算机网络之A、B、C类网络地址
  14. 基本知识 100159
  15. Java框架学习顺序是哪些
  16. c语言卡诺图算法实现,多变量卡诺图化简的算法实现.pdf
  17. 普通音箱实现成为无线音箱
  18. Binet‘s Formula 算法
  19. 关于软件开发的那些事(二):聊聊协同打单的一些心得体会
  20. 软件外包交易平台排行

热门文章

  1. JavaSE学习(黑马程序员徐磊老师)day01
  2. Linux系统下工具软件的安装
  3. 考研最辛苦、最努力的一批人,喊累之前先看看他们……
  4. 全球著名大学计算机视觉相关实验室
  5. (附源码)Springboot企业网站的设计与实现 毕业设计 211750
  6. 妙赞大讲糖:降糖为何要动“刀”
  7. 可视化数据结构的网站
  8. vue 项目 webstrom IDE格式化代码规则遵循eslint设置
  9. pc usb充电测试软件,充电宝都是大骗子?炬为USB测试工具组合,让你马上一清二楚...
  10. [CTF]ACSII码