SSH免密通信
1、SSH简介
Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。虽然任何网络服务都可以通过SSH实现安全传输,SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令。使用频率最高的场合类Unix系统,2、SSH免密登陆原理
SSH以非对称加密实现身份验证。身份验证有多种途径,例如其中一种方法是使用自动生成的公钥-私钥对来简单地加密网络连接,随后使用密码认证进行登录;另一种方法是人工生成一对公钥和私钥,通过生成的密钥进行认证,这样就可以在不输入密码的情况下登录。任何人都可以自行生成密钥。公钥需要放在待访问的计算机之中,而对应的私钥需要由用户自行保管。认证过程基于生成出来的私钥,但整个认证过程中私钥本身不会传输到网络中。
文章图片
原理 3、免密登录过程
【SSH免密通信】生成密钥
通过RSA算法进行加密,提示输入的话可直接回车不输入任何内容。
[bigdata@prod-bigdata-azkaban-A .ssh]$ ssh-keygen -t rsa
随后家目录下隐藏文件夹
.ssh
下会生成公钥密钥:[bigdata@prod-bigdata-azkaban-A .ssh]$ pwd
/home/bigdata/.ssh
[bigdata@prod-bigdata-azkaban-A .ssh]$ ll
total 24
-rw------- 1 bigdata bigdata 4120 Mar 25 17:58 authorized_keys
-rw------- 1 bigdata bigdata 1675 Nov 22 16:10 id_rsa
-rw-r--r-- 1 bigdata bigdata412 Nov 22 16:10 id_rsa.pub
-rw-r--r-- 1 bigdata bigdata 6789 Mar 25 14:03 known_hosts
追加密钥
如果是A免密与B通信,就需要把A的公钥
id_rsa.pub
添加到B的authorized_keys
文件中,反过来一样。推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- SSH|SSH 免密
- ssh生成公钥秘钥
- Unity和Android通信系列文章2——扩展UnityPlayerActivity
- Android|Android BLE蓝牙连接异常处理
- KubeDL HostNetwork(加速分布式训练通信效率)
- 为Google|为Google Cloud配置深度学习环境(CUDA、cuDNN、Tensorflow2、VScode远程ssh等)
- Android|Android Kotlin实现AIDL跨进程通信
- 运维|如何限制IP 通过 SSH连接服务器
- 运维|Linux 禁止用户或 IP通过 SSH 登录