目录
一、SSH基础概述
1.1 概述
1.2 工作原理
二、模拟配置远程登录实验
2.1ssh远程登录
三、轻量级自动化运维工具Pssh
四、总结
一、SSH基础概述
1.1 概述
SSH(Secure Shell)是一种通用的、功能强大的、基于软件的网络安全解决方案。计算机每次向网络发送数据时,SSH都会自动对其进行加密。其中包括用户登录时输入的用户口令,SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。
优点:
· 数据传输是加密的,可以防止信息泄漏
· 数据传输是压缩的,可以提高传输速度
1.2 工作原理
SSH利用了公钥加密/非对称加密来实现安全登录的,一般可以分为以下几个步骤:
·1 生成会话密钥:通过特定的加密方法加密生成,传输给所连接的主机。
·2 用户身份认证: 通过验证身份来对传输来的密钥进行解密验证实现的,这个过程中传输的所有数据都是通过上一步生成的密钥加密过的。
·3 数据加密:基于生成的会话密钥,进行数据加密的传输通讯
流程:
客户端主机A发起链接请求
服务端主机B返回自己的公钥,以及一个会话ID(这一步客户端得到服务端公钥)
客户端生成密钥对
客户端用自己的公钥异或会话ID,计算出一个值Res,并用服务端的公钥加密
客户端发送加密后的值到服务端,服务端用私钥解密,得到Res
服务端用解密后的值Res异或会话ID,计算出客户端的公钥(这一步服务端得到客户端公钥)
最终:双方各自持有三个秘钥,分别为自己的一对公、私钥,以及对方的公钥,之后的所有通讯都会被加密
二、模拟配置远程登录实验
2.1ssh远程登录
模拟配置:
[root@localhost ~]# systemctl stop firewalld 关闭防火墙 [root@localhost ~]# setenforce 0 [root@localhost ~]# ssh root@192.168.26.130 ##ssh+主机名+@+目标IP The authenticity of host '192.168.26.130 (192.168.26.130)' can't be established. ECDSA key fingerprint is SHA256:4W/n+YUuzw8uEB9oFdbheDHmFQr9v8V8Ou4NVH5fwtI. ECDSA key fingerprint is MD5:2f:72:d6:8f:51:7b:a5:a8:df:d3:7a:8c:be:4f:26:a9. Are you sure you want to continue connecting (yes/no)? y Please type 'yes' or 'no': yes ##yes进入登录 Warning: Permanently added '192.168.26.130' (ECDSA) to the list of known hosts. root@192.168.26.130's password: ##输入目标主机的密码 Last login: Tue Oct 12 13:58:59 2021 from 192.168.26.1 [root@localhost ~]#
如何确认是否登录成功
root@localhost ~]# ifconfig ##查看网卡IP ens33: flags=4163mtu 1500 inet 192.168.26.130 netmask 255.255.255.0 broadcast 192.168.26.255
ftp远程登录
命令格式:
sftp +用户名+主机IP
get +文件名=下载
put+文件名=上传文件
[root@localhost ~]# sftp root@192.168.26.130 root@192.168.26.130's password: Connected to 192.168.26.130. sftp> ls anaconda-ks.cfg initial-setup-ks.cfg 下载 公共 图片 文档 桌面 模板 视频 音乐
登录密钥配置
[root@localhost .ssh]# ssh-keygen -t ecdsa 设置ssh访问密码 Generating public/private ecdsa key pair. Enter file in which to save the key (/root/.ssh/id_ecdsa): 密钥文件位置 Enter passphrase (empty for no passphrase): 设置密码 Enter same passphrase again: 再次确认密码 Your identification has been saved in /root/.ssh/id_ecdsa. Your public key has been saved in /root/.ssh/id_ecdsa.pub. The key fingerprint is: SHA256:vtQFsaqjkj8wRScQkS4yWjsqop0KpJHugYqlFpHk1VA root@localhost.localdomain The key's randomart image is: +---[ECDSA 256]---+ | +*+E . | | ...o.. o | |o.o. o o | |+=o . . . | |==.o S . | |*o= o . . | |++o= o o . | |O=+... o . | |@oooo. . | +----[SHA256]-----+ [root@localhost .ssh]# ls 此时.ssh文件下有密钥文件 id_ecdsa id_ecdsa.pub known_hosts [root@localhost .ssh]# [root@localhost .ssh]# ssh-copy-id -i id_ecdsa.pub root@192.168.26.111 将密钥文件导入 [root@localhost .ssh]# ssh root@192.168.26.111 ##再次请求连接 Enter passphrase for key '/root/.ssh/id_ecdsa': ##输入之前设置的密钥访问密码
(访问密钥,与用户密码无关,IP地址无关,只与密钥对有关)
三、轻量级自动化运维工具Pssh
修改yum仓库添加yum源
[root@localhost yum.repos.d]# vim CentOS-base.repo 修改这个文件并添加yum源
[epel]
name=epel
baseurl=https://mirrors.aliyun.com/epel/$releasever/x86_64 ##阿里云
https://mirrors.cloud.tencent.com/epel/$releasever/x86_64 ##腾讯云
https://mirrors.huaweicloud.com/epel/$releasever/x86_64 ##华为云
https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/x86_64 ##清华云
gpgcheck=0
清理缓存
[root@localhost bak]# yum clean all
安装pssh环境
[root@localhost bak]# yum install pssh -y (所有.repo结尾的文件都要在:yum.repo.d目录下)
生成免密登录
[root@localhost bak]# ssh-keygen 一直回车 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:kj0t2ZT53ngj66DXZ81XuO6DdKYxH62V7i+g6+sz8CQ root@localhost.localdomain The key's randomart image is: +---[RSA 2048]----+ | | | o | | + | | o = . | | o S o . o.| | .Eo..=o=.+| | =.++X=B.| | .*.++Oo+| | .+=*o=+++| +----[SHA256]-----+
将公钥导入其他的服务器
[root@localhost .ssh]# ssh-copy-id 192.168.26.130
配置管理多台服务器
[root@localhost .ssh]# pssh -H "192.168.26.100 192.168.26.130"-i cat /etc/passwd (pssh -H +连接的IP地址 + -i详细信息 +配置命令) [1] 17:18:51 [SUCCESS] 192.168.26.100 root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt [2] 17:18:51 [SUCCESS] 192.168.26.130 root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt
四、总结
如果ssh下次请求连接时,就不会输入密码,如果需要限制用户进行跳板登录时可以将修改sudo命令修改权限。只有用ssh连过后根目录下会生成名为 .ssh 的文件 存在着连接主机的信息



