远程管理服务概念介绍
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解析功能