为 SSH 设置用户代理

Vre*_*ity 1 ssh user-agent

如何为 ssh 程序设置用户代理?没有用户代理的网络请求在我的网络上被阻止,我想知道 ssh 是否因此引发“对等连接重置”错误。我知道这与端口无关,因为我尝试了许多不同的常见和不常见端口都无济于事。

ssh 程序是否默认发送一个?

Den*_*nis 5

用户代理是一个 HTTP 头,SSH 不使用 HTTP 协议。因此,SSH 不能指定用户代理。

目标端口 22 被阻塞的可能性更大。为了避免这种情况,您可以在服务器上指定额外的侦听端口/etc/ssh/sshd_config

例子:

# What ports, IPs and protocols we listen for
Port 22
Port 8080
Run Code Online (Sandbox Code Playgroud)

在您的客户端机器上,您必须在连接时或在配置文件中手动指定端口。

手动方法示例:

ssh -p 8080 example.com
Run Code Online (Sandbox Code Playgroud)

系统范围/etc/ssh/ssh_config或每个用户中的示例条目~/.ssh/config

Host example.com
Port 8080
Run Code Online (Sandbox Code Playgroud)

如果您的连接因数据包检查而被阻止,您可能需要使用 HTTPS 代理。如果 Apache2 已经安装,它可以用作代理。

如果您在服务器上安装了 HTTPS 代理,则可以使用此命令

ssh -o "ProxyCommand nc -X connect -x example.com:8080 %h %p" example.com
Run Code Online (Sandbox Code Playgroud)

或添加

Host example.com
Port ProxyCommand nc -X connect -x example.com:8080 %h %p
Run Code Online (Sandbox Code Playgroud)

在 SSH 配置文件中。

您还可以使用基于 Web 的解决方案,例如shellinabox