Рейтинг:0

Невозможно использовать ssh с помощью ProxyJump, но он работает с ssh -J

флаг cn

Мой вопрос: Как настроить хост-бастион для ssh на AWS, используя экземпляр Ubuntu?

Я могу сделать следующее с успехом:

root@e183d80cdabc# ssh -J [email protected] [email protected]
Последний вход: сб, 4 сентября, 13:14:17 2021 с 10.240.0.30
==> УСПЕХ! ==> ubuntu@ip-10-240-0-20:~$

Но это не удается, когда я пытаюсь использовать файл ~/.ssh/config. Используемые команды:

# ssh 10.240.0.20
# ssh убунту@10.240.0.20
# ssh -i ~/.ssh/id_rsa [email protected]

ssh: подключиться к хосту 10.240.0.20, порт 22: соединение отклонено

Мой ~/.ssh/config выглядит так:

root@e183d80cdabc# кошка $HOME/.ssh/config
Хозяйский бастион
  Имя хоста 54.170.186.144
Удаленный хост
  Имя хоста 10.240.0.20
  Бастион ProxyJump

Я запускаю Ubuntu на AWS следующим образом:

ubuntu@ip-10-240-0-30:~$ кошка /etc/os-релиз
ИМЯ="Убунту"
ВЕРСИЯ = "20.04.2 LTS (Фокусная ямка)"
ID=убунту
ID_LIKE=дебиан
PRETTY_NAME="Убунту 20.04.2 ЛТС"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=фокальная
UBUNTU_CODENAME=фокусный

Я попытался добавить Пользователь убунту поле, но это не помогает.

Мой /etc/ssh/ssh_config на сервере выглядит так:

Хозяин *
    ForwardX11Trusted да
    Файл идентификации ~/.ssh/id_rsa
    Порт 22
    SendEnv ЯЗЫК LC_*
    HashKnownHosts да
    GSSAPIAАутентификация да

ОБНОВИТЬ Сейчас я использую подробный вариант, т.е.

root@e183d80cdabc# ssh -vvv 10.240.0.20
OpenSSH_8.2p1 Ubuntu-4ubuntu0.3, OpenSSL 1.1.1f 31 марта 2020 г.
debug1: Чтение данных конфигурации /root/.ssh/config
debug1: /root/.ssh/config строка 2: Применение параметров для *
debug1: Чтение данных конфигурации /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config строка 19: включение /etc/ssh/ssh_config.d/*.conf не соответствует ни одному файлу
debug1: /etc/ssh/ssh_config строка 21: Применение параметров для *
debug2: resolve_canonicalize: имя хоста 10.240.0.20 — это адрес
отладка2: ssh_connect_direct
debug1: подключение к порту 22 10.240.0.20 [10.240.0.20].
debug1: подключиться к адресу 10.240.0.20 порт 22: подключение отклонено
ssh: подключиться к хосту 10.240.0.20, порт 22: соединение отклонено

Похоже, что он не использует какой-либо узел перехода (т. е. пропускает бастион) и идет напрямую, и НЕ ДАЕТСЯ.

Любые идеи с благодарностью! Спасибо

=========================================================

ОБНОВЛЕНИЕ: 2021-09-04-15-44 - с РЕШЕНИЕМ Спасибо всем, я отметил как ответ ниже.

Правильная конфигурация не использует HostName, так как сопоставление выполняется на Хозяин. Я также смог включить подстановочный знак в IP-адрес, что мне действительно было нужно.

конфигурация ssh

root@e183d80cdabc# кошка $HOME/.ssh/config
Хозяйский бастион
  Имя хоста 63.33.206.201
  Пользователь убунту
Хост 10.240.0.*
  Бастион ProxyJump
  Пользователь убунту

И вуаля!

# ssh 10.240.0.20
...
Ubuntu@ip-10-240-0-20:~$
anx avatar
флаг fr
anx
Не копируйте *закрытые* ключи ssh, храните их в надежном локальном хранилище — это весь *смысл* этого механизма.
флаг in
Если вы сомневаетесь, запустите ssh с дополнительной информацией `ssh -vvv ... remote`.
флаг cn
Спасибо, anx --> сегодня проверил, что мне не нужно никуда копировать закрытый ключ - он работает с командной строкой -J без копирования. Но все равно не работает простая команда ssh вместе с файлом ~/.ssh/config, содержащим все параметры (включая «Пользователь ubuntu»)
флаг cn
Спасибо, zoredache - обновлен выходом -zzz выше.
anx avatar
флаг fr
anx
Я отредактирую опасные части вашего вопроса ... не стесняйтесь посвятить им отдельный вопрос, но я совершенно уверен, что для них уже существуют дубликаты.
Рейтинг:3
флаг fr
anx

Разница между вашей командной строкой

ssh -J убунту@54.170.186.144 убунту@10.240.0.20

и что я рекомендую вам сделать, чтобы сослаться на вашу конфигурацию

ssh удаленный

заключается в том, что последний не имеет ни IP, ни пользователь для входа на обеих машинах в командной строке - вам нужно отредактировать конфигурацию ssh, чтобы включить все информация, которую вы больше не передаете в командной строке:

# $HOME/.ssh/config
### Хозяин Бастиона
Хозяйский бастион
  Имя хоста 54.170.186.144
  Пользователь убунту

### Удаленный хост
Удаленный хост
  Имя хоста 10.240.0.20
  Пользователь убунту
  Бастион ProxyJump

Обновление: Хотя да, теоретически вы может настройте свой Хозяин строфы для соответствия IP-адресам, я рекомендую против делать это.

Если хост не доступен напрямую с определенным IP-адресом, то на него следует ссылаться с помощью имя - просто представьте, что происходит, когда у вас есть одно и то же (частное) IP-пространство, назначенное нескольким хостам, вы не можете назначить правильную конфигурацию ProxyJump для каждого.

Еще одна причина, по которой использование адресов для ссылки на хосты нежелательно, — это хосты, доступные через несколько семейств адресов: если хост доступен через IPv4 и IPv6, вы, вероятно, хотите, чтобы ваше ssh-соединение оставалось независимым от протокола и добавляло флаг только тогда, когда вы действительно хотите ограничить (автоматический) выбор.

флаг cn
спасибо анкс. Да, к сожалению, вышеприведенное дает то же самое, т.е. не работает. Спасибо за ваш ответ!
флаг cn
Пожалуйста, смотрите окончательный ответ - проблема связана с сопоставлением - добавление одного поля пользователя не поможет - оно должно соответствовать правильной конфигурации. Я использовал HostName и должен был использовать host для сопоставления. Анкс спасибо за помощь!
anx avatar
флаг fr
anx
@Banoona Да, вы должны ссылаться на хосты по тому, как они называются в строке «Host» в вашей конфигурации. Но я также считаю, что это должны быть (в идеале: канонические *хост*) имена, а не адреса.
Рейтинг:3
флаг fr

Сопоставление выполняется на Хозяин строфа, не на Имя хоста.

Пытаться:

ssh ubuntu@remote
флаг cn
Ура! Это ответ, спасибо миллион Томек! См. мое обновление @ 2021-09-04-15 (в исходном вопросе выше), которое добавляет дополнительную поддержку использования определенного IP-адреса и подстановочного знака для включения диапазона подсети. Отличная работа, спасибо!

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

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