流量代理-工具1Mac自带软件OpenSSH的使用
Posted 南瓜__pumpkin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了流量代理-工具1Mac自带软件OpenSSH的使用相关的知识,希望对你有一定的参考价值。
文章目录
OpenSSH介绍
简介
查看Mac自带的SSH软件信息:ssh -V
在Linux系统中,OpenSSH是目前最流行的远程系统登录与文件传输应用。
OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程中的数据,并由此来代替原来的类似服务。
OpenSSH客户端文件
openssl-clients 几个常用文件
[root@1inux ssh]# rpm -ql openssh-clients
/etc/ssh/ssh_config //客户端配置文件
/usr/bin/scp //远程复制文件
/usr/bin/sftp //远程文件共享
/usr/bin/slogin
/usr/bin/ssh
/usr/bin/ssh-add
/usr/bin/ssh-agent
/usr/bin/ssh-copy-id
/usr/bin/ssh-keyscan
ssh客户端使用
ssh客户端基本用法
基本语法:ssh [OPTIONS] [user]@server [COMMAND]
客户端使用参数 | 说明 |
---|---|
-l | 指定用户,例如ssh -l root IP,或ssh root@ip |
-p | 指定端口,默认连接22端口 |
-X | 启用X11Forwarding,即转发X界面的请求 |
-x | 禁用 |
-Y | 启用信任的X11Forwarding |
OpenSSH客户端基于密钥的认证
ssh-keygen用法:ssh-keygen [OPTIONS]
客户端使用参数 | 说明 |
---|---|
-t | {rsa dsa} 密钥类型 默认使用rsa |
-b | 指明密钥长度 |
-f /PATH/TO/OUTPUT_KEYFILE | 指明密钥文件 |
-P ‘’ | 指明加密密钥的密码,此处表示使用空密码 |
生成密钥对示例 | ssh-keygen -t rsa |
参考:OPENSSH 详解
scp远程复制工具
语法:scp [OPTIONS] SRC…DEST
常用选项 | 说明 |
---|---|
-r | 递归复制,复制目录及内部文件时使用 |
-p | 保存源文件元数据信息中的属主、属组及权限 |
-q | 静默模式 |
-P | 指明远程服务器使用的端口 |
两种使用模式 | 命令 |
---|---|
上传 | scp [OPTIONS] 本地文件路径 user@ip:远程服务器路径 |
下载 | scp [OPTIONS] user@ip:远程服务器路径 本地文件路径 |
ssh命令ProxyCommand(本文重心)
参数说明
软件比较: ProxyCommand是openssh的特性,putty,xshell,没有这个功能。在windows下面,推荐使用mobaxterm,其基于cgywin,里面移植了一个完整版本的openssh实现,在linux和macos里面直接就是openssh。
连接原理: OpenSSH 的客户端有一个 ProxyCommand 的选项, 用于 SSH 客户端与服务器之间的隧道通信(tunneling). 所谓的隧道技术, 也称代.理技术, 是网络通信技术的一个普遍概念。
连接隧道: ProxyCommand 指定一个命令(或者说程序/进程, 称为 Proxy),SSH 客户端将通过标准 IO 和 Proxy 程序进行正常的 SSH 通信。而 Proxy 连接着 SSH 服务器(一般是一个 Server Proxy, 再由该 Server Proxy 连接服务器)。Proxy 和 Server Proxy 之间组成了一条隧道,图解如下。
实例分析
ssh -o "ProxyCommand=nc -X 5 -x 127.0.0.1:1080 %h %p" root@106.52.x
命令拆解分析 | 说明 |
---|---|
-o “ProxyCommand=” | control_command,ssh通过该参数指定 Proxy 程序 |
nc -X 5 | 使用socks v5 协议 |
nc -x | 连接到127.0.0.1:1080 |
%h %p | 指定目标机的ip和port,经测试不带该参数也可连接 |
shell执行 man ssh
查看 -o参数,说明信息:ctl_cmd(control_command),通过ssh调用命令。
shell执行 man nc
查看参数 -x 和 -X:[-X proxy_protocol] [-x
proxy_address[:port]]。
不加参数则表示:[hostname] [port[s]]。
%h表示要连接的目标机,也就是Hostname指定的ip或者主机名。%p表示要连接到目标机的端口。这儿可以直接写死固定值,但是使用%h和%p可以保证在Hostname和Port变化的情况下ProxyCommand这行不用跟着变化。
从执行命令来观察流量过程:首先 ssh 把流量交给 nc ,nc 把流量交给127.0.0.1:1080(Server Proxy监听的端口,即交给Server Proxy),Server Proxy 连接 ssh [options] ip:port command
中指定的目的地 root@106.52.x
。
参考
OPENSSH 详解,主要参考文章。
OpenSSH系列(扩展一)-ProxyCommand的扩展使用以及实现代码,使用了http协议进行代理,系列文章。
#转载#ssh高级用法 : 使用ProxyCommand透过多层跳板机,解释了%h和%p参数。
以上是关于流量代理-工具1Mac自带软件OpenSSH的使用的主要内容,如果未能解决你的问题,请参考以下文章
分享M1mac编程中遇到的坑(IDEA/MySQL)持续更新..