二十四、SSH介绍
1.ssh介绍:
SSH先对联机数据包通过加密技术进行加密处理,加密后在进行数据传输,确保了传递的数据安全。(运维的一大重视点就是要对安全敏感)
在当前的生产环境运维工作中,绝大多数企业都是SSH协议服务。不在telnet协议。
在默认状态下,SSH服务主要有两个服务功能:1.提供类似telnet远程联机服务 2.支持sftp安全
SSH客户端(ssh命令)还包含一个很有用的远程安全拷贝命令scp,也是通过ssh协议工作的。
2.ssh构成
SSH服务由服务端软件OpenSSH和客户端组成(SSH、SecureCRT,xshell),默认端口是22。SSH是一个守护进程,负责实时监听客户端请求,并进行处理。
所以也可以理解为:SSH服务=Openssh+openssl
查看包名:rpm -qa openssh openssl(负责加密的)
进程 :ps -ef | grep sshd
[root@nfsserve ~]# rpm -qa openssh openssl
openssh-5.3p1-94.el6.x86_64
openssl-1.0.1e-15.el6.x86_64
[root@nfsserve ~]# ps -ef |grep sshd
root 926 1 0 May29 ? 00:00:00 /usr/sbin/sshd
root 5400 926 0 07:33 ? 00:00:00 sshd: oldboy [priv]
oldboy 5402 5400 0 07:34 ? 00:00:00 sshd: oldboy@pts/0
root 5530 926 0 08:02 ? 00:00:00 sshd: [accepted]
sshd 5531 5530 0 08:02 ? 00:00:00 sshd: [net]
root 5532 926 0 08:02 ? 00:00:00 sshd: [accepted]
sshd 5533 5532 0 08:02 ? 00:00:00 sshd: [net]
root 5535 926 0 08:03 ? 00:00:00 sshd: oldboy [priv]
oldboy 5537 5535 0 08:03 ? 00:00:00 sshd: oldboy@pts/1
root 5577 5558 0 08:04 pts/1 00:00:00 grep sshd
3. 简单的说,SSH加密技术就是将人类可以看懂的数据,通过一定的特殊程序算法,把这些数据变成杂乱的无意义的信息,然后,通过网络进行传输,到达目的地后,在通过对应的解密算法进行解密算法。
配置文件是 /etc/ssh/sshd_config,一般服务端是公钥,客户端是私钥。有两种密钥:RSA和DSA。那么在SSH1.0只是支持RSA,2.0是两种都支持的密钥。
当然还有很多算法,这个RSA的加密方式就是用来产生公钥与私钥的算法之一。
1.0SSH的加密过程:
1) 当SSH服务启动的时候,就会产生一个临时的公钥(sshd_config配置文件中)存放
在Server中。
[root@nfsserve ~]# grep ServerKey /etc/ssh/sshd_config
#ServerKeyBits 1024
2)当SSH客户端联机请求发过来的时候,服务器会将这个临时公钥发往客户端,Client会将公钥与先前存放的公钥进行对于,看下是否一致,判断标准是Clent端的用户命令下~/.ssh/known_hosts文件内容。
3)客户端本地也会产生这次连接的一个私钥,结合服务器的公钥,产生一个新的密钥(keypair),用来和服务端进行通信。
所以1.0的SSH的联机过程如图,这里会看到当客户端发送key pair的时候,服务器端不在进行检测,所以这里是可以进行修改的,所以是不安全的,即SSH1.0是不安全的密钥。
4.为了更改这个缺点,SSH多了一个确定联机正确性的Diffie-Hellman机制,在每次数据传输中,server都会以该机制检查数据来源是否正确,所以2是比较安全的。
5.认证:
在客户端client看来,SSH有两种认证方式
1)口令认证
linux客户端:ssh -p52113 oldboy@192.168.0.102
(第一次登陆,Client会将公钥与先前存放的公钥进行对于,看下是否一致,判断标准是Clent端的用户命令下~/.ssh/known_hosts文件内容。 )
[root@djw1 ~]# cd ~/.ssh/
[root@djw1 .ssh]# ll
total 4
-rw-r--r--. 1 root root 403 May 23 11:13 known_hosts
[root@djw1 .ssh]# cat known_hosts
[192.168.0.102]:52113 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA5WmD27wFyvlzuEvF6yJ6BAT+ZP5KOgxQJzCuDmGwRftj6vDsTaHY8za1W0kV0/IyUpv+PXc5/81xF1+G3SxlSZXhc/8//3DxsozLFA1bSSSt4Ioe6ng3Dg/B4ggkmCv2iayQOUIpxfugI75z4DbBO1rR/bsCOdu+9W0vo0pW2cdF4HnZo/kEuIX/86JiM9wp5O+uMq5rKbAyxeW0dMzi/LHcZ3iozPicaPTcF3qbEmH1wwNzDPYzX9FEYj4j7gYHWe2xw+l+03raHtDYm78rLQG1MaIquuU6+CDYKSaJ6XziGOMyk0x85Enkse/VGD69UnAsrlkmQ4NdhwzUk5SrPw==
小结:1.切换到别的机器 ssh -p端口 user@ip
2.到其他机器执行命令(不会切换到机器上)ssh -p 端口 user@ip 命令(全路径)
3.当第一次连接的时候,本地会产生一个密钥文件~/.ssh/known_hosts(多个密钥)
2)基于密钥登陆
基于口令登陆的,需要手动输入服务器端的密码,那么基于密钥的登陆不需要手动输入密码,只是公钥在服务器端,私钥在客户端,基于密钥的安全认证也有windows和linux客户端的区分。
这里主要说明的是linux端的配置。
思想:基于牤牛阵法,完全不对外开放端口,留下一台服务器专门接受VPN或者相关密钥认证登陆,才能访问内网端。
6.ssh客户端附带的远程拷贝scp命令:
推:scp -P52113 /data/oldboy.txt oldboy@192.168.0.102:/tmp
拉:scp -P52113 oldboy@192.168.0.102:/tmp /data/oldboy.txt
scp接端口时需要用P,-r复制目录 -p保持原始属性
scp是加密的远程拷贝,可以把数据从一台机器推送到另外一台机器,也可以从其他服务器把数据拉会到本地,但是,每次都是全量拷贝(rsync增量拷贝),因此,效率不高。
7.ssh附带的sftp:加密传输文件:(服务端有sftp的守护进程)
put 文件 /路径 (上传) get 文件 /路径(下载)
windows的sftp如下:是windows本地和连接的linux服务之间的文件传输。
二十四、SSH介绍的更多相关文章
- 第三百二十四节,web爬虫,scrapy模块介绍与使用
第三百二十四节,web爬虫,scrapy模块介绍与使用 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了 ...
- FreeSql (二十四)Linq To Sql 语法使用介绍
原本不支持 IQueryable 主要出于使用习惯的考虑,如果继承 IQueryable,编写代码的智能总会提示出现一堆你不想使用的方法(对不起,我有强迫症),IQueryable 自身提供了一堆没法 ...
- WCF技术剖析之二十四: ServiceDebugBehavior服务行为是如何实现异常的传播的?
原文:WCF技术剖析之二十四: ServiceDebugBehavior服务行为是如何实现异常的传播的? 服务端只有抛出FaultException异常才能被正常地序列化成Fault消息,并实现向客户 ...
- 使用Typescript重构axios(二十四)——防御XSRF攻击
0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...
- 学习笔记:CentOS7学习之二十四:expect-正则表达式-sed-cut的使用
目录 学习笔记:CentOS7学习之二十四:expect-正则表达式-sed-cut的使用 24.1 expect实现无交互登录 24.1.1 安装和使用expect 24.2 正则表达式的使用 24 ...
- Bootstrap<基础二十四> 缩略图
Bootstrap 缩略图.大多数站点都需要在网格中布局图像.视频.文本等.Bootstrap 通过缩略图为此提供了一种简便的方式.使用 Bootstrap 创建缩略图的步骤如下: 在图像周围添加带有 ...
- 二十四、Struts2中的UI标签
二十四.Struts2中的UI标签 Struts2中UI标签的优势: 数据回显 页面布局和排版(Freemark),struts2提供了一些常用的排版(主题:xhtml默认 simple ajax) ...
- VMware vSphere 服务器虚拟化之二十四 桌面虚拟化之手动池管理物理机
VMware vSphere 服务器虚拟化之二十四 桌面虚拟化之手动池管理物理机 VMwareView手动池可以管理物理计算机 说明: 环境基于实验二十三 1.准备一台Windows 7的物理计算机名 ...
- Bootstrap入门(二十四)data属性
Bootstrap入门(二十四)data属性 你可以仅仅通过 data 属性 API 就能使用所有的 Bootstrap 插件,无需写一行 JavaScript 代码.这是 Bootstrap 中的一 ...
- 3360: [Usaco2004 Jan]算二十四
3360: [Usaco2004 Jan]算二十四 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 6 Solved: 6[Submit][Statu ...
随机推荐
- (7)opencv图片内部的基本处理
就是,给定我们一张图片,我们可以对图片的每一个像素的色彩进行处理 比如,我们的原图是这个样子 然后我首先将他变成灰度图(灰度图的行道是1,就是chanaual是1) 然后,我又将灰色图片的黑白进行颠倒 ...
- Maven - 工作原理
章节 Maven – 简介 Maven – 工作原理 Maven – Repository(存储库) Maven – pom.xml 文件 Maven – 依赖管理 Maven – 构建生命周期.阶段 ...
- [CQOI2016]K远点对(KD-Tree)
暴力的做法应该是这样的,维护大小为k的堆,每次插入两点间距离并弹出堆顶. 然后这个做法显然是可以KD-Tree优化的,建立KD-Tree,然后如果该平面内最远点小于堆顶,则直接退出.就当做是复习很久没 ...
- Mysql数据库忘记密码找回方法
Mysql数据库忘记密码找回 a 停止mysql服务 /etc/init.d/mysql stop b 使用--skip-grant-tables启动mysql,忽略授权登录验证 mysqld_saf ...
- [SWPU2019]Web1
0x00 知识点 bypass information_schema 参考链接: https://www.anquanke.com/post/id/193512 进行bypass之前先了解一下mysq ...
- PHP核心配置详解
基本配置-语法 1:大小写敏感 directive = value 2:运算符 | & ~ ! 3:空值的表达方式 foo = ; foo = none; foo = "none&q ...
- 0CTF-2016-piapiapia-PHP反序列化长度变化尾部字符串逃逸
0X00 扫描一下网站目录,得到网站源码,这里说下工具使用的是dirmap,亲测御剑不好用... 0x01 审计源码: index.php <?php require_once('class.p ...
- 视图家族之视图工具集viewsets
视图家族之视图工具集viewsets 一.视图集ViewSet 使用视图集ViewSet,可以将一系列逻辑相关的动作放到一个类中: list() 提供一组数据 retrieve() 提供单个数据 cr ...
- Java - 记录String中intern()方法的学习与理解
intern()方法:把堆中的引用丢入常量池中,然后返回这个引用.当常量池中已经存在这个引用,就直接返回这个引用.(jdk1.8) 由于jdk1.7中将字符串常量池改为存放在堆中,因此intern() ...
- netty 百度网盘 密码
netty基础 https://pan.baidu.com/s/1v_ME49LIef1Kwga8z2QbDw?spm=a1z09.2.0.0.680b2e8d5LI8S0 zb7u mina n ...