Skip to content

Commit ae58798

Browse files
committed
updated
1 parent 532961c commit ae58798

File tree

42 files changed

+1594
-509
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+1594
-509
lines changed

content/Basic_CS/Network/Security/OpenSSH/OpenSSH.md

Lines changed: 82 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ date: 2099-06-02 00:00
1111
1212
OpenSSH 是安全 Shell (SSH) 工具的开放源代码版本,是一个软件。
1313
Linux 及其他非 Windows 系统的管理员使用此类工具跨平台管理远程系统。
14-
15-
1614
```dot
1715
digraph {
1816
subgraph cluster_3{
@@ -26,41 +24,37 @@ digraph {
2624
}
2725
```
2826

29-
> 官网:https://www.openssh.com/
30-
> Github:https://github.com/PowerShell/openssh-portable/tree/v8.1.0.0
27+
官网:https://www.openssh.com/
28+
Github:https://github.com/PowerShell/openssh-portable/tree/v8.1.0.0
3129

3230
## 1.1. 特色与组成
3331

3432
SSH 基于客户端-服务器体系结构,用户在其中工作的系统是客户端,所管理的远程系统是服务器。 OpenSSH 包含一系列组件和工具,用于提供一种安全且简单的远程系统管理方法,其中包括:
35-
1. `sshd.exe`,它是远程所管理的系统上必须运行的 SSH 服务器组件
36-
2. `ssh.exe`,它是在用户的本地系统上运行的 SSH 客户端组件
37-
3. `sftp.exe`,这是提供安全文件传输协议的服务,通过 SSH 运行
38-
4. `scp.exe` 是在 SSH 上运行的文件复制实用工具
39-
40-
5. `ssh-keygen.exe`,为 SSH 生成、管理和转换身份验证密钥
41-
6. `ssh-agent.exe`,存储用于公钥身份验证的私钥
42-
7. `ssh-add.exe`,将私钥添加到服务器允许的列表中
43-
8. `ssh-keyscan.exe`,帮助从许多主机收集公用 SSH 主机密钥
44-
33+
1. `sshd`,它是远程所管理的系统上必须运行的 SSH 服务器组件
34+
2. `ssh`,它是在用户的本地系统上运行的 SSH 客户端组件
35+
3. `sftp`,这是提供安全文件传输协议的服务,通过 SSH 运行
36+
4. `scp` ,是在 SSH 上运行的文件复制实用工具
37+
5. `ssh-keygen`,为 SSH 生成、管理和转换身份验证密钥
38+
6. `ssh-agent`,存储用于公钥身份验证的私钥
39+
7. `ssh-add`,将私钥添加到服务器允许的列表中
40+
8. `ssh-keyscan`,帮助从许多主机收集公用 SSH 主机密钥
4541

4642
## 1.2. SSH协议
4743

4844
SSH是一种网络协议
49-
50-
Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境[1]
45+
Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。
5146

5247

5348
SSH协议框架中最主要的部分是三个协议:
5449

55-
传输层协议(The Transport Layer Protocol):传输层协议提供服务器认证,数据机密性,信息完整性等的支持。
56-
用户认证协议(The User Authentication Protocol):用户认证协议为服务器提供客户端的身份鉴别。
57-
连接协议(The Connection Protocol):连接协议将加密的信息隧道复用成若干个逻辑通道,提供给更高层的应用协议使用。
58-
同时还有为许多高层的网络安全应用协议提供扩展的支持。
50+
1. `传输层协议(The Transport Layer Protocol)`:传输层协议提供服务器认证,数据机密性,信息完整性等的支持。
51+
2. `用户认证协议(The User Authentication Protocol)`:用户认证协议为服务器提供客户端的身份鉴别。
52+
3. `连接协议(The Connection Protocol)`:连接协议将加密的信息隧道复用成若干个逻辑通道,提供给更高层的应用协议使用。
5953

54+
同时还有为许多高层的网络安全应用协议提供扩展的支持。
6055
各种高层应用协议可以相对地独立于SSH基本体系之外,并依靠这个基本框架,通过连接协议使用SSH的安全机制。
61-
## 1.3. ssh和ssl的联系和区别
62-
6356

57+
## 1.3. ssh和ssl的联系和区别
6458

6559
ssh:Secure Shell,安全Shell,是一个软件,处于应用层旨在取代明文通信的telnet;对应的开源实现程序是openssh。
6660

@@ -104,6 +98,72 @@ service sshd restart
10498
## 3.3. ssh-keygen--用于生成安全的密钥
10599

106100

101+
## 3.4. scp
102+
103+
scp都是在本地操作,因此需要指明远端的信息,其实scp本质上也是基于ssh的,因此同样使用-i指定公钥.
104+
105+
需要注意的是scp有如下使用限制:
106+
1. 如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用-P参数来设置命令的端口号
107+
2. 使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的。
108+
用法:
109+
110+
### 复制:本地-->远端
111+
112+
**复制文件**
113+
```shell
114+
# 复制文件
115+
scp <local_file> remote_username@remote_ip:remote_folder
116+
scp <local_file> remote_username@remote_ip:remote_file
117+
scp <local_file> remote_ip:remote_folder
118+
scp <local_file> remote_ip:remote_file
119+
scp <local_file> host_alias:remote_folder
120+
scp <local_file> host_alias:remote_file
121+
```
122+
第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名
123+
124+
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名
125+
126+
第5,6个使用了ssh中设置的连接别名.
127+
128+
**复制文件夹**
129+
```shell
130+
# 复制文件夹
131+
scp -r local_folder remote_username@remote_ip:remote_folder
132+
scp -r local_folder remote_ip:remote_folder
133+
scp -r local_folder host_alias:remote_folder
134+
```
135+
136+
第1个指定了用户名,命令执行后需要再输入密码
137+
第2个没有指定用户名,命令执行后需要输入用户名和密码
138+
第3个使用了ssh中设置的连接别名
139+
### 复制:远程-->本地
140+
141+
从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可
142+
143+
144+
```shell
145+
scp -r remote_username@remote_ip:remote_folder local_folder
146+
```
147+
148+
参数说明:
149+
150+
-1: 强制scp命令使用协议ssh1
151+
-2: 强制scp命令使用协议ssh2
152+
-4: 强制scp命令只使用IPv4寻址
153+
-6: 强制scp命令只使用IPv6寻址
154+
-B: 使用批处理模式(传输过程中不询问传输口令或短语)
155+
-C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
156+
-p:保留原文件的修改时间,访问时间和访问权限。
157+
-q: 不显示传输进度条。
158+
-r: 递归复制整个目录。
159+
-v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
160+
-c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
161+
-F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。
162+
-i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
163+
-l limit: 限定用户所能使用的带宽,以Kbit/s为单位。
164+
-o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,
165+
-P port:注意是大写的P, port是指定数据传输用到的端口号
166+
-S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
107167

108168
# 4. 案例
109169
## 4.1. 远程服务器的免密登入

content/Basic_CS/Network/Security/OpenSSL/CA.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: "[应用]基于openssl的CA签发全流程"
2+
title: "[应用]基于OpenSSL的CA签发全流程"
33
layout: page
44
date: 2099-06-02 00:00
55
---

0 commit comments

Comments
 (0)