SSH¶
SSH是GOST中的一种数据通道类型。
SSH有两种模式:隧道模式和转发模式。
隧道模式¶
服务端
客户端
转发模式¶
采用标准SSH协议的端口转发功能,仅支持TCP。
服务端
客户端
使用系统本身的SSH服务
在转发模式下服务端可以直接使用系统本身的SSH服务,例如Linux中的OpenSSH(sshd)服务。
认证¶
SSH支持用户名/密码认证和PubKey认证两种认证方式。
用户名/密码认证¶
认证信息作用对象
在命令行模式下,认证信息(user:pass)设置的是SSH通道的认证(Listener和Dialer),而非Handler和Connector。 此行为仅在使用ssh和sshd通道时有效。
服务端
客户端
PubKey认证¶
服务端
服务端通过authorizedKeys
选项设置已授权客户端公钥列表。
客户端
客户端通过privateKeyFile
和passphrase
选项设置证书私钥和私钥密码。
或
心跳¶
客户端通过keepalive
选项开启心跳,并通过ttl
选项设置心跳包发送的间隔时长(默认30s)。
也可以通过keepalive.timeout
选项设置心跳超时时长(默认15s),keepalive.retries
选项设置心跳发送重试次数(默认1次)
或
组合使用¶
SSH数据通道的隧道模式可以与各种代理协议组合使用。
HTTP Over SSH¶
SOCKS5 Over SSH¶
Relay Over SSH¶
端口转发¶
SSH通道的隧道模式也可以用作端口转发。
服务端
通过使用SSH数据通道的端口转发,给1080端口的SOCKS5代理服务增加了SSH数据通道。
此时2222端口等同于: