SSH через HTTP с прокси-туннелем и nginx
Я пытаюсь настроить соединение ssh через http, используя nginx в качестве веб-сервера. Похоже, вокруг нет никаких рабочих примеров. proxytunnel - это то, что я использую для обёртки http на ssh, и пока он не очень хорошо работает с 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:
~ default: nginx.conf
sshtunnel:
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 + только ключ авторизации
У кого-нибудь есть идеи о том, что не так? Мой googlefu подводит меня к этому:/