1

В настоящее время у меня на домашнем ПК настроен HAProxy, и я пытаюсь получить к нему доступ через HTTP-прокси. В настоящее время я получаю доступ к приглашению для входа по SSH следующим образом:

openssl s_client->proxytunnel->HTTP(S) proxy->remote HAProxy->SSH server

Я дошел до того, что получил приглашение SSH-2.0-OpenSSH но по какой-то причине он просто зависает в приглашении и не проходит через закрытый ключ.

Вот команды, которые я выполняю на стороне клиента, и как я настраиваю прокси-туннель для использования прокси организации:

proxytunnel -p httpproxy.organization.com:8080 -d ssh.homeserver.com:443 -a 7000

Далее я запускаю openssl примерно так:

openssl s_client -connect localhost:7000 -quiet -key /home/user/.ssh/id_rsa

Но по какой-то причине сертификат не проходит через него. Скорее всего, я пропускаю шаг, поэтому любые предложения будут с благодарностью!

1 ответ1

3

Вы путаете клиентов с двумя совершенно разными протоколами.

Инструмент openssl s_client является чисто клиентом TLS (SSL) ; он способен очистить слой TLS, который может добавить HAproxy или stunnel. Однако, как только это будет сделано, он просто передает произвольные данные с одного конца на другой. Приглашение, которое вы видите, является исходным рукопожатием SSH, и сервер ожидает, что вы ответите на него; следовательно, вам все еще нужно запустить программу, подобную ssh которая будет передавать протокол SSH поверх туннеля TLS.

Обычно ssh подключается к серверу через TCP напрямую, но вы можете использовать опцию ProxyCommand ей пройти через другую программу:

ssh -o ProxyCommand="openssl s_client -connect localhost:7000 -quiet" dummyname

Если у вас есть пара ключей SSH, вам также нужно указать ее в качестве опции для ssh :

ssh -i ~/.ssh/id_workplace -o ProxyCommand.....

(Не нужно это для ~/.ssh/id_rsa хотя - оно используется по умолчанию.)


Опции s_client -cert и -key предназначены для аутентификации на сервере TLS. Однако им нужен полный сертификат X.509 как "-cert"; просто открытого ключа недостаточно, как это было бы для SSH.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .