1
0
wiki/work/devsec/网络安全/OpenSSH/简介.md
2022-10-25 12:07:38 +08:00

37 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: 简介
title: 简介
sidebar_position: 1
data: 2022年4月13日
---
## SSH 是什么
历史上,网络主机之间的通信是不加密的,属于明文通信。这使得通信很不安全,一个典型的例子就是服务器登录。登录远程服务器的时候,需要将用户输入的密码传给服务器,如果这个过程是明文通信,就意味着传递过程中,线路经过的中间计算机都能看到密码,这是很可怕的。
SSH 就是为了解决这个问题而诞生的它能够加密计算机之间的通信保证不被窃听或篡改。它还能对操作者进行认证authentication和授权authorization。明文的网络协议可以套用在它里面从而实现加密。
## 历史
1995年芬兰赫尔辛基工业大学的研究员 Tatu Ylönen 设计了 SSH 协议的第一个版本(现称为 SSH 1同时写出了第一个实现称为 SSH1
当时,他所在的大学网络一直发生密码嗅探攻击,他不得不为服务器设计一个更安全的登录方式。写完以后,他就把这个工具公开了,允许其他人免费使用。
SSH 可以替换 rlogin、TELNET、FTP 和 rsh 这些不安全的协议所以大受欢迎用户快速增长1995年底已经发展到五十个国家的20,000个用户。SSH 1 协议也变成 IETF 的标准文档。
1995年12月由于客服需求越来越大Tatu Ylönen 就成立了一家公司 SCS专门销售和开发 SSH。这个软件的后续版本逐渐从免费软件变成了专有的商业软件。
SSH 1 协议存在一些安全漏洞所以1996年又提出了 SSH 2 协议(或者称为 SSH 2.0。这个协议与1.0版不兼容在1997年进行了标准化1998年推出了软件实现 SSH2。但是官方的 SSH2 软件是一个专有软件,不能免费使用,而且 SSH1 的有些功能也没有提供。
1999年OpenBSD 的开发人员决定写一个 SSH 2 协议的开源实现,这就是 OpenSSH 项目。该项目最初是基于 SSH 1.2.12 版本,那是当时 SSH1 最后一个开源版本。但是OpenSSH 很快就完全摆脱了原始的官方代码在许多开发者的参与下按照自己的路线发展。OpenSSH 随 OpenBSD 2.6 版本一起提供,以后又移植到其他操作系统,成为最流行的 SSH 实现。目前Linux 的所有发行版几乎都自带 OpenSSH。
现在SSH-2 有多种实现,既有免费的,也有收费的。本书的内容主要是针对 OpenSSH。
## SSH 架构
SSH 的软件架构是服务器-客户端模式Server - Client。在这个架构中SSH 软件分成两个部分向服务器发出请求的部分称为客户端clientOpenSSH 的实现为 ssh接收客户端发出的请求的部分称为服务器serverOpenSSH 的实现为 sshd。
本教程约定,大写的 SSH 表示协议,小写的 ssh 表示客户端软件。
另外OpenSSH 还提供一些辅助工具软件(比如 ssh-keygen 、ssh-agent和专门的客户端工具比如 scp 和 sftp这个教程也会予以介绍。