欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~
👇热门内容👇
python使用案例与应用_安城安的博客-CSDN博客
软硬件教学_安城安的博客-CSDN博客
Orbslam3&Vinsfusion_安城安的博客-CSDN博客
网络安全_安城安的博客-CSDN博客
教程_安城安的博客-CSDN博客
python办公自动化_安城安的博客-CSDN博客
新书购买《Python实用小工具开发教程》
http://www.pythontoolsteach.com/3
目录
一.引言
二.完整代码
三.代码分析
1. 头部信息
2. 许可证声明
3. 包含的头文件
4. 全局变量和常量
5. 信号处理函数
6. 核心函数分析
do_local_cmd
do_cmd
do_cmd2
7. 主函数 main
主要流程:
8. 数据传输函数
toremote
tolocal
source
sink
rsource
9. 辅助函数
response
run_err
allocbuf
do_times
10. 协议格式
控制消息:
11. 关键特点
12. 安全注意事项
一.引言
这些代码是 OpenBSD 系统下 scp(secure copy,安全复制)命令的完整实现,它基于 SSH 协议在两台计算机之间安全地传输文件,既支持本地与远程主机之间的复制(如 `scp local.txt user@remote:/path/`),也支持远程主机之间的直接复制(如 `scp user1@host1:/file user2@host2:/path/`)。该程序通过创建 SSH 子进程建立加密通道,使用专门的协议格式传输文件数据、权限、时间戳等信息,并实现了递归目录复制、带宽控制、进度显示等功能,本质上是一个用 SSH 加密替换了传统 rcp 不安全连接的安全文件传输工具。
二.完整代码
/* $OpenBSD: scp.c,v 1.192 2017/05/31 09:15:42 deraadt Exp $ */ /* * scp - secure remote copy. This is basically patched BSD rcp which * uses ssh to do the data transfer