ssh的介绍

远程管理服务概念介绍

ssh 安全的远程连接,数据信息是加密的 端口22 ssh默认root连接
telnet 不安全的远程连接,数据信息时明文的 端口23 telnet默认不可以让root连接

shell介绍
1.每连接登陆一个linux系统中,就是一个shell
2.可以一个linux系统有多少个会话连接,每一个会话都是一个shell
3.系统中用户可以实现相互转换,每转换一个用户就是一个shell
shell特点
1.一般命令行临时配置的信息,只会影响当前shell
2.命令配置的信息如果想生效,需要切换shell

ssh服务连接工作原理(数据加密)
私钥:钥匙
公钥:锁
第一个步骤: 客户端 执行远程连接命令
第二个步骤:客户端 服务端 建立三次握手过程
第三个步骤:服务端 让客户端进行确认是否接收服务端公钥信息
第四个步骤:客户端 进行公钥确认
第五个步骤:服务端 让客户端确认登陆用户密码信息
第六个步骤: 客户端 进行密码信息确认
第七个步骤: 客户端 服务端 远程连接,建立成功

私钥和公钥作用

1.利用私钥和公钥对数据信息进行加密处理
2.利用公钥和私钥进行用户身份认证

基于密码的方式进行远程连接:公钥和私钥只能完成数据加密过程
基于秘钥的方式进行远程连接:公钥和私钥可以完成身份认证工作

ssh远程连接方式

a.基于口令的方式进行远程连接(连接的时候输入密码)
b.基于秘钥的方式进行远程连接

基于秘钥方式连接过程(原理)
1.客户端(管理端) 执行命令创建密钥对
2.客户端(管理端) 建立远程连接(口令),发送公钥信息
3.客户端(管理端) 再次建立远程连接
4.服务端(被管理端) 发送公钥质询信息(你的钥匙能打开我的锁头吗)
5.客户端(管理端) 处理公钥质询信息(钥匙将锁头打开),将质询结果返回给服务端
6.服务端(被管理端)接收到质询结果,建立好远程连接

ssh实现基于秘钥连接的步骤步骤

ssh-keygen -t
-t 指定秘钥的类型(dsa|rsa)

#管理端创建密钥对信息
ssh-keygen -t dsa
Generating public/private dsa key pair.#创建一个公钥 私钥对
Enter file in which to save the key (/root/.ssh/id_dsa): #是否保存到/root/.ssh/id_dsa
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub. #公钥存放的地点
The key fingerprint is:
SHA256:mTvlsIIhzd8PQwvxI3e/KMBLihScsxSv/CqircboiQ8 root@ansible01
The key's randomart image is:
+---[DSA 1024]----+
|                 |
|  .              |
| . +  .          |
|  *o.  o o       |
| o.=+.o S o      |
|  =. ++* X .     |
|E. o.oooO . .    |
|==o o ...= . .   |
|O*+.     .o .    |
+----[SHA256]-----+

管理端需要将公钥进行分发

# ssh-copy-id -i /root/.ssh/id_dsa.pub 10.0.0.11

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_dsa.pub"
The authenticity of host '10.0.0.11 (10.0.0.11)' can't be established.
ECDSA key fingerprint is SHA256:qFeNq4IXVpxFwyIOgEglw+weObZ3G1MsOdvUnGMlaqA.
ECDSA key fingerprint is MD5:7a:04:36:f2:e1:5e:01:3b:ea:01:e9:02:cb:b3:c2:81.
Are you sure you want to continue connecting (yes/no)? 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@10.0.0.11's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '10.0.0.11'"
and check to make sure that only the key(s) you wanted were added.

到客户端
ll /root/.ssh/
-rw-------. 1 root root 1208 Nov 14 22:00 authorized_keys

进行远程连接测试

ssh 10.0.0.11  就不需要密码了

批量分发公钥

脚本分发

问题:有交互过程
1.需要有确认yes或no
2.需要输入密码信息
3.服务端端口号变化了,如何分发

如何不用交互输入密码信息,进行远程连接分发公钥:

第一步,下载安装软件
yum install -y sshpass
sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub root@10.0.0.11

不需要输入连接yes或no的确认信息

ssh-copy-id -i /root/.ssh/id_dsa.pub root@10.0.0.11 "-o StrictHostKeyChecking=no"

端口变化

ssh-copy-id -i /root/.ssh/id_dsa.pub root@10.0.0.11 -p 52113

#!/bin/bash
for ip in {11,12,13}
do
    echo "========host 10.0.0.$ip pub-key  开始分发========="
    sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub root@10.0.0.11 -p 22 "-o StrictHostKeyChecking=no" &>/dev/null
     echo "host 10.0.0.$ip 分发成功"
    echo "========host 10.0.0.$ip pub-key  分发结束=========="
    echo""
done

ssh配置文件

/etc/ssh/ssh_config 客户端配置文件
/etc/ssh/sshd_config 服务端配置文件
Port 22 ----修改服务端口信息
ListenAddress 0.0.0.0 ---监听地址
PermitEmptyPasswords no ---是否允许空密码连接(默认不允许)
PermitRootLogin Yes ---是否允许root登陆
GSSAPIAuthentication no --- 是否开启GSSAPI认证功能 不用的时候关闭
UseDNS no ---是否开启反向DNS解析功能

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容