Рейтинг:0

SSH работает по IP, но по имени

флаг rs

Общий контекст:

У меня есть сервер с несколькими контейнерами LXD и с HAPROXY сверху для перенаправления трафика в хороший контейнер относительно указанного URL-адреса.

Указанный контейнер — это gitlab.

Главный сервер

Порт 22 открыт

сервер# iptables -L -n |grep 22
ПРИНЯТЬ tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
ПРИНЯТЬ tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22

сервер# netstat -plnt | группа 22
TCP 0 0 0.0.0.0:22 0.0.0.0:* ПРОСЛУШИВАТЬ 2536/sshd           
tcp6 0 0 :::22 :::* ПРОСЛУШИВАТЬ 2536/sshd  

Конфигурация сервера Gitlab

gitlab# кошка /etc/hosts
127.0.0.1 gitlab.pub-domain.com gitlab
127.0.0.1 локальный хост
127.0.1.1 s-302-gitlab # имя машины
::1 локальный хост ip6-localhost ip6-loopback
ff02::1 ip6-все узлы
ff02::2 ip6-все маршрутизаторы

gitlab# кошка /etc/resolv.conf 
поиск pub-domain.com
поиск priv-domain.ovh
сервер имен 8.8.8.8

# netstat -tulpn | группа 22
TCP 0 0 127.0.0.1:9229 0.0.0.0:* ПРОСЛУШАТЬ 583/gitlab-workhors 
TCP 0 0 0.0.0.0:22 0.0.0.0:* ПРОСЛУШАТЬ 5094/sshd           
tcp6 0 0 :::22 :::* ПРОСЛУШИВАТЬ 5094/ssh

Пинговать все

Запущен в контейнерах gitlab и работает:

gitlab# # ssh -T https://[email protected]
https://[email protected] пароль:
gitlab# ssh -T https://[email protected]
https://[email protected] пароль:

Теперь перейдите на другую машину (скажем, сервер, чтобы упростить) и пропингуйте:

сервер # ping pub-domain.com
PING pub-domain.com (31.7.xx.yy) 56 (84) байт данных.
64 байта из 31.7.xx.yy (31.7.xx.yy): icmp_seq=1 ttl=64 time=0,588 мс
--- статистика пинга pub-domain.com ---
1 пакет передан, 1 получен, 0% потери пакетов, время 0 мс

сервер # ping gitlab.pub-domain.com
PING pub-domain.com (31.7.xx.yy) 56 (84) байт данных.
64 байта из 31.7.xx.yy (31.7.xx.yy): icmp_seq=1 ttl=64 time=0,588 мс
--- статистика пинга pub-domain.com ---
1 пакет передан, 1 получен, 0% потери пакетов, время 0 мс

SSH

сервер# ssh git@s-302-gitlab
ssh: подключиться к хосту s-302-gitlab, порт 22: в соединении отказано
сервер# ssh -T https://[email protected]
ssh: подключиться к хосту gitlab.pub-domain.com порт 22: подключение отклонено
сервер# ssh -T [email protected]
Подлинность хоста «192.168.3.200 (192.168.3.200)» не может быть установлена.
Отпечаток ключа ECDSA — SHA256:Pe2vY/8GyG3o6ZkDErTN8Ko+k9veJA9S4wnHvQXSYJk.
Вы уверены, что хотите продолжить подключение (да/нет)? 

Любая идея, почему я могу подключиться только с использованием IP, а не домена/URL?

Отвечая на комментарии

# копать +короткий s-302-gitlab
# dig +short gitlab.pub-domain.com
pub-домен.com.
31.7.xx.yy

Спасибо,

digijay avatar
флаг mx
На «сервере», что выводит «dig +short s-302-gitlab»? Попробуйте то же самое для gitlab.pub-domain.com.
флаг rs
@digijay: первый ничего, второй pub-домен и внешний IP. Смотрите мое редактирование в исходном сообщении.
anx avatar
флаг fr
anx
Вы добавляете опцию `-v` к вашему ssh-вызову несколько раз, чтобы увеличить детализацию. Тогда ssh сообщит более конкретно, в каком соединении было отказано. Кстати, Ваше имя пользователя, вероятно, является ошибкой. Обычно `https://` обозначает соединение, использующее HTTP, тогда как имена пользователей ssh ​​обычно не содержат косых черт или двоеточий.
Michael Hampton avatar
флаг cz
`s-302-gitlab` определен в вашем файле `/etc/hosts`. Какой IP-адрес вы ожидали, что он будет иметь? Потому что вы сразу же попытались подключиться по ssh к `192.168.3.200`, который не является тем же IP-адресом.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.