如何为 ssh 程序设置用户代理?我的网络上没有用户代理的网络请求会被阻止,我想知道 ssh 是否因此抛出了“对等方重置连接”错误。我知道这与端口无关,因为我尝试了许多不同的常用和不常用端口,但都无济于事。
ssh 程序默认发送一个吗?
答案1
用户代理是 HTTP 标头,而 SSH 不使用 HTTP 协议。因此,SSH 无法指定用户代理。
更有可能的是目标端口 22 被阻止。为了避免这种情况,您可以在 中指定服务器上的其他侦听端口/etc/ssh/sshd_config
。
例子:
# What ports, IPs and protocols we listen for
Port 22
Port 8080
在您的客户端机器中,您必须在连接时手动指定端口或在配置文件中指定端口。
手动方法示例:
ssh -p 8080 example.com
系统范围/etc/ssh/ssh_config
或每个用户的示例条目~/.ssh/config
:
Host example.com
Port 8080
如果您的连接由于数据包检查而被阻止,您可能需要使用 HTTPS 代理。如果已安装 Apache2,则可以将其用作代理。
如果你的服务器上安装了 HTTPS 代理,则可以使用此命令
ssh -o "ProxyCommand nc -X connect -x example.com:8080 %h %p" example.com
或添加
Host example.com
Port ProxyCommand nc -X connect -x example.com:8080 %h %p
在 SSH 配置文件中。
您还可以使用基于 Web 的解决方案,例如shellinabox。