SSH 为 Secure Shell 的缩写,SSH 为建立在应用层基础上的安全协议,SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,
利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、PoP、甚至为PPP提供一个安全的通道。

1.ssh语法
ssh:远程执行命令后返回信息并退出-p port:远程服务器监听的端口-b:指定连接的源IP-v:调试模式-C:压缩方式-X: 支持x11(图形)转发-Y:支持信任x11转发ForwardX11Trusted yes-t: 强制伪tty分配
2.基于密钥的登录方式
1 首先在客户端生成一对密钥(ssh-keygen)
2 并将客户端的公钥ssh-copy-id 拷贝到服务端
3 当客户端再次发送一个连接请求,包括ip、用户名
4 服务端得到客户端的请求后,会到authorized_keys中查找,如果有响应的IP和用户,就会随机生成一个字符串,例如:acdf
5 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端
6 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端
7 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录

具体步骤:

1.准备环境:
centos8 ip:192.168.136.219  控制端
centos8 ip:192.168.136.145  受管端2.首先生成一对密钥
[root@master ~]# ssh-keygen -t rsa    #t:加密算法
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):#密钥自动创建并且保存在.ssh下,ls-al查看:id_rsa  id_rsa.pub  known_hosts
Created directory '/root/.ssh'.
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:dIOwBUpEt5KxfZrRGXlxE9+Kh+/LqZXmPZaG1CYwgNg root@master
The key's randomart image is:
+---[RSA 3072]----+
|   o= *.+...+.   |
|   . O E.=.. o . |
|    = = *.+   . .|
|     . * . + o . |
|      o S   = +  |
|             = + |
|            . O .|
|             B B |
|            ..O.o|
+----[SHA256]-----+3.发送密钥到受管端
[root@master ~]# ssh-copy-id root@192.168.136.145
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.136.145 (192.168.136.145)' can't be established.
ECDSA key fingerprint is SHA256:SEhN+MsuyBvAaWMPriq++QOreGxs75+A4Xy4lk9P4mw.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes    #是否连接
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.136.145's password:    #输入受管主机的密码
Number of key(s) added: 1     #添加的密钥数Now try logging into the machine, with:   "ssh 'root@192.168.136.145'"
and check to make sure that only the key(s) you wanted were added.4.使用ssh-agent代理免密操作
[root@master ~]# ssh-agent bash       #启动代理更新
[root@master ~]# ssh-add                #添加代理的密钥文件
Enter passphrase for /root/.ssh/id_rsa:   #输入密钥密码
Identity added: /root/.ssh/id_rsa (root@master)
[root@master ~]# ssh root@192.168.136.145
Activate the web console with: systemctl enable --now cockpit.socketLast login: Wed Jul 14 10:27:50 2021 from 192.168.136.219
[root@slave ~]#                   #不输入密码直接登录到受管主机界面了#重启则重新刷新代理才生效
3.加深操作
1.ansible运维工具,主机配置文件加入受管主机ip
## green.example.com
## blue.example.com
## 192.168.100.1
## 192.168.100.10
[web]
192.168.136.145
2.ansible利用模块ping
[root@master ~]# ansible web -m ping
192.168.136.145 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/libexec/platform-python"},"changed": false,"ping": "pong"            #可以看到不需要密码还安全
}
[root@master ~]# ansible web -a "yum -y install httpd"
(9/9): httpd-2.4.37-40.module_el8.5.0+852+0aafc 2.5 MB/s | 1.4 MB     00:00
--------------------------------------------------------------------------------
总计                                            1.4 MB/s | 2.0 MB     00:01
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
4.密钥管理
#查看私钥
ssh-add -l
#查看私钥对应的公钥
ssh-add -L
#移除指定的私钥
ssh-add -d id_rsa
#移除所有的私钥
#ssh-add -D

SSH代理基于Key免密码登录相关推荐

  1. windows登录linux免密码,Windows使用SSH Secure Shell实现免密码登录Linux的方法以及使用scp2命令免密码下载文件...

    1.   环境信息 SSH Secure Shell Client所在的操作系统: Windows7 Linux服务器以及SSH的版本: [hadoop@gpmaster ~]$ cat /etc/r ...

  2. SSH信任关系配置(免密码登录)

    场景:主机A想ssh免密码访问主机B (root/非root用户通用) A→B 1.在主机A上切换到平常用来跳转的用户上(本例用普通用户GK),执行ssh-keygen命令,然后一路回车即可. roo ...

  3. Windows使用SSH Secure Shell实现免密码登录Linux的方法以及使用scp2命令免密码下载文件

    1.   环境信息 SSH Secure Shell Client所在的操作系统: Windows7 Linux服务器以及SSH的版本: [hadoop@gpmaster ~]$ cat /etc/r ...

  4. 大数据之-Hadoop完全分布式_集群中SSH配置_远程免密码登录_为集群_群起做准备---大数据之hadoop工作笔记0036

    之前我们做集群配置的时候,去连接,别的主机,都需要输入这个主机的密码,很麻烦,做分发的时候,还得多次输入不同主机的密码,是相当麻烦 现在我们通过配置SSH来实现,主机之间的免密码登录 可以看到hado ...

  5. ssh免密码登录全过程

    生成公钥和私钥 ssh-keygen 等同于ssh-keygen -t rsa 运行上面的命令后,系统会出现一系列提示,可以一路回车,例如: $ ssh-keygen Generating publi ...

  6. linux系统密码正则,Linux密钥登录原理和ssh使用密钥实现免密码登陆

    目录 1.公私钥简介与原理 公钥和私钥都属于非对称加密算法的一个实现,这个加密算法的信息交换过程是: 1) 持有公钥的一方(甲)在收到持有私钥的一方(乙)的请求时,甲会在自己的公钥列表中查找是否有乙的 ...

  7. ssh免密码登录3种解决方法

    前言 如果需要远程管理几个ssh服务器,输入不输入密码都无所谓,甚至都能背下来密码.当你要管理的ssh 多达几十个时,就不想输入密码啦.这里只是记录本人的使用习惯,不一定是最佳解决方案. 方式一:专门 ...

  8. 主机之间ssh免密码登录

    1 前提条件 主机A,用户名为aris,IP地址为192.168.1.1 主机B,用户名为leon,IP地址为192.168.1.2 这两台主机上均安装了SSH服务器,且已经打开ssh服务: 检查主机 ...

  9. 配置免密码登录Linux服务器

    2019独角兽企业重金招聘Python工程师标准>>> 获取本机SSH公钥,cat ~/.ssh/id_rsa.pub 远程Linux服务器上,vim ~/.ssh/authoriz ...

最新文章

  1. python 正则表达式方法_Python正则表达式一: 基本使用方法
  2. 哨兵模式原理_Redis哨兵、复制、集群的设计原理,以及区别
  3. Android之android.os.NewWorkOnMainThreadException解决办法
  4. LeetCode3:Longest Substring Without Repeating Characters
  5. echarts折现变曲线_echarts将折线图改为曲线图
  6. 美元为什么能够无限超发?
  7. 什么是广告?为什么我们讨厌广告?
  8. 省A类竞赛二等奖--村先游项目VUE前端重构
  9. 计算机地图制图的论文,计算机地图制图实习报告.doc
  10. dtu虚拟服务器,DTU服务器云
  11. Python 在问答频道中刷题积累到的小技巧(二)
  12. 中学计算机课体育课被占用,那些年被占用的体育课
  13. 数据中心机房设备标签规范建议
  14. 苹果三代耳机_【团品2】1.苹果原装数据线以及有线耳机 2.苹果蓝牙耳机
  15. 厦门八大美院墙绘 茶馆里的中国风墙绘壁画
  16. 【创建一个网页,实现猜数字游戏】
  17. UMLChina公众号文章精选(20210706更新精选)
  18. 教你一招H5快应用快速回到首页
  19. 响应式banner图片轮播布局代码
  20. 【Python】Webpy 源码学习

热门文章

  1. 大厂光环下的功能测试,出去面试自动化一问三不知
  2. Centos防火墙端口
  3. Linux iostat命令详解
  4. haproxy启动时提示失败
  5. ZR2019暑期集训游记
  6. 孙玄辜教授:基于Linux内核的时间轮算法设计实现【附代码】
  7. 好男人的15条标准[转帖]
  8. SpringMVC producesheadersconsumes
  9. WEB前端.jQuery
  10. java上位机开发(GUI设计)