我正在尝试使用 nginx 作为网络服务器通过 http 连接设置 ssh。周围似乎没有任何工作示例。proxytunnel 是我在 ssh 上用于 http 包装器的东西,到目前为止它似乎不能很好地与 nginx 配合使用。返回:笔记本电脑 ~$ proxytunnel -v -p ssh.example.com:80 -d localhost:22 -H "用户代理:Mozilla/4.0(兼容;MSIE 5.0;Windows NT 5.1;.NET CLR 1.1.4322) \n" 本地代理 ssh.example.com 解析为 1.2.3.4 连接到 ssh.example.com:80(本地代理)
Tunneling to localhost:22 (destination)
Communication with local proxy:
-> CONNECT localhost:60022 HTTP/1.0
-> Proxy-Connection: Keep-Alive
-> User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows NT 5.1; .NET CLR 1.1.4322)\n
<- <html>
<- <head><title>400 Bad Request</title></head>
<- <body bgcolor="white">
<- <center><h1>400 Bad Request</h1></center>
<- <hr><center>nginx/0.7.67</center>
<- </body>
<- </html>
analyze_HTTP: readline failed: Connection closed by remote host
使用 ssh 只是添加:ssh_exchange_identification: Connection closed by remote host
我的配置如下。nginx:
~默认:nginx.conf
SSH隧道:
upstream tunnel {
server localhost:22;
}
server {
listen 80;
server_name ssh.*;
location / {
proxy_pass http://tunnel;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
}
}
ssh: default+gatewayports=yes+key auth only
有人对出了什么问题有任何想法吗?我的 googlefu 在这方面让我失望了:/