Не удается установить SSH-туннель Postgres pgAdmin на Ubuntu

У меня есть капля на DigitalCloud с Ubuntu 14.04 и PostgreSQL 9.3. На локальной машине у меня такая же конфигурация.

Мое ssh-соединение работает, поэтому проблем с ним нет. Это должно быть где-то в моем подключении к Postgres или в настройках среды.

Итак, что я уже сделал на сервере:

  • изменил порт прослушивания в / etc / ssh / sshd_config

    Порт 4321

  • включены удаленные подключения в /etc/postgresql/9.3/main/pg_hba.conf

    хост все все 0.0.0.0/0 md5

  • добавлены адреса прослушивания в /etc/postgresql/9.3/main/postgresql.conf

    listen_addresses = '*'

А вот и мои локальные настройки подключения:

Вот экран вкладки "Мои свойства"

Вот мой экран с вкладкой SSH Tunnel

Я использую тот же (и единственный) файл id_rsa.pub, который я использовал для установки своего ssh-соединения раньше. Что работает. И это ошибка, которую я получаю при попытке подключиться:

Ошибка SSH: не удалось выполнить аутентификацию с помощью файла идентификации, код ошибки -16 [Невозможно извлечь открытый ключ из файла закрытого ключа: неверный пароль или недопустимый / нераспознанный формат файла закрытого ключа]

Моя кодовая фраза была пуста.

Если я пытаюсь подключиться без туннеля SSH, возникает другая ошибка:

Ошибка подключения к серверу: ошибка SSL: неизвестный протокол ожидал запрос аутентификации от сервера, но получил S

Я новичок в этом деле и, возможно, пропустил что-то важное. Так что скажите мне, если вы хотите, чтобы я предоставил какую-либо другую информацию по этому поводу.

ИЗМЕНИТЬ 1:

Если я использую правильный файл id_rsa (без pub), я получаю ту же ошибку:

Ошибка подключения к серверу: ошибка SSL: неизвестный протокол ожидал запрос аутентификации от сервера, но получил S


person Seybo Glaux    schedule 06.05.2016    source источник


Ответы (1)


Я использую тот же (и единственный) файл id_rsa.pub

Первая проблема в том, что это неправильный файл. Посмотрите, есть ли у вас в том же месте файл с именем «id_rsa» без расширения «.pub». Это файл, который вы должны использовать в качестве файла идентификации.

Ключи RSA ssh представлены в двух файлах: id_rsa содержит закрытый ключ, а id_rsa.pub - открытый ключ. id_rsa.pub устанавливается на сервере, к которому вы подключаетесь, а id_rsa используется клиентом, который устанавливает соединение с сервером.

(Файлы ключей, конечно, могут называться иначе, чем id_rsa. Дело в том, что закрытый ключ находится в foobar, а открытый ключ - в foobar.pub .)

Если у вас нет файла id_rsa, вам следует сгенерировать новый ключ и на этот раз сохранить оба файла.

Вторая проблема заключается в том, что у вас неправильный порт на вкладке Свойства. Номер порта на вкладке свойств - это порт, на котором работает сервер PG. Вы должны установить это значение на 5432 или любой другой порт, который действительно прослушивает ваш сервер. Кажется, вам также следует установить для параметра «host» на вкладке свойств значение «localhost», но я не знаю, требуется ли это.

Ошибка подключения к серверу: ошибка SSL: неизвестный протокол ожидал запрос аутентификации от сервера, но получил S

Что происходит сейчас, так это то, что ваше туннелированное PG-соединение идет на порт 4321 на удаленном хосте, который является сервером SSH. Бывает, что первое, что SSH-сервер отправляет новому клиенту, - это строка версии, которая выглядит как «SSH-2.0-OpenSSH_6.9». Я не знаю протокола PG, но, видимо, ваш клиент читает «S» в строку SSH и сразу узнает, что он не подключен к серверу PG.

person Kenster    schedule 06.05.2016
comment
да, я тоже пробовал это, но он дает мне ту же ошибку: Ошибка подключения к серверу: ошибка SSL: неизвестный протокол ожидал запрос аутентификации от сервера, но получил S - person Seybo Glaux; 07.05.2016
comment
И, возможно, это может помочь: если я изменю имя пользователя на какое-то несуществующее имя, это даст мне эту ошибку Ошибка SSH: аутентификация с помощью файла идентификации не удалась с кодом ошибки -18 [Недопустимая комбинация имени пользователя / PublicKey] - person Seybo Glaux; 07.05.2016
comment
Только что узнал, что мой локальный Postgres и серверный имеют разные версии (9.5 и 9.3), и подумал, что это может вызвать проблему. Поэтому я обновил версию сервера до той же 9.5.2, перезапустил, но проблема все еще существует :( - person Seybo Glaux; 07.05.2016
comment
@SeyboGlaux Добавил раздел о номерах портов. Замечу, что сам не использую postgressql или pgadmin. Если после этого у вас все еще возникнут проблемы, я могу не сильно помочь. - person Kenster; 07.05.2016