流量代理-工具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及其思想

#转载#ssh高级用法 : 使用ProxyCommand透过多层跳板机,解释了%h和%p参数。

以上是关于流量代理-工具1Mac自带软件OpenSSH的使用的主要内容,如果未能解决你的问题,请参考以下文章

windows自带的openssh客户端用不了退格键

网络营销可以用哪些工具?利用黑洞代理加快进程

分享M1mac编程中遇到的坑(IDEA/MySQL)持续更新..

centos7自带流量监控软件iftop

win7 显示“发现您正在使用一下代理软件 window(系统自带共享代理),请停止使用路由器或代

win7 显示“发现您正在使用一下代理软件 window(系统自带共享代理),请停止使用路由器或代