7

У меня ssh настроен на автоматическую пересылку через бастионный хост:

Host bastion_host
    HostName bastion.example.com

Host internal_host
    ProxyCommand ssh -q bastion_host nc -q0 internal_host.dmz 22
    User internal_user

Это работает. Однако, если я пытаюсь подключиться через mosh, я получаю следующую ошибку:

$ mosh internal_host
/usr/local/bin/mosh: Could not resolve hostname internal_host
ssh_exchange_identification: Connection closed by remote host
/usr/local/bin/mosh: Did not find remote IP address (is SSH ProxyCommand disabled?).

То, что я ищу, это подключение mosh от моей системы к хосту бастиона и обычный туннель ssh от хоста бастиона до внутренних хостов. Возможный?

2 ответа2

5

Вы используете ProxyCommand в вашей конфигурации ssh, а mosh упоминает ProxyCommand в сообщении об ошибке. Я думаю, что это жизненно важный ключ. Mosh использует ProxyCommand для внутреннего использования, и при этом он, вероятно, переопределяет ваши собственные настройки.

Я избегал ProxyCommand с помощью ручного вызова перенаправления портов, например:

ssh -fN -L 2222:internal_host.example.com:22 bastion_host

Затем я пытаюсь подключиться к localhost через порт 2222:

mosh --ssh="ssh -p2222" internal_user@localhost

Вместо ошибки ProxyCommand я получаю это:

mosh-server: invalid option -- 'l'
Usage: mosh-server new [-s] [-i LOCALADDR] [-p PORT] [-c COLORS] [-- COMMAND...]

Я подозреваю, что это связано с разными версиями mosh, так как я вижу это даже при использовании mosh напрямую без bastion_host. В любом случае, прямое соединение работает, несмотря на сообщение, поэтому я не думаю, что это проблема. Скорее, я думаю, что проблема в том, что переадресация портов обрабатывает только порт 22, в то время как mosh также использует порт UDP в 60000:61000. Туннелирование ssh не может легко пересылать UDP-трафик, поэтому я думаю, что вам лучше использовать другую архитектуру.

Я предполагаю, что вы хотите использовать mosh для первого прыжка, поскольку ваша локальная машина может изменять сети и т.д. Почему бы просто не использовать mosh и ssh, как это (возможно, с псевдонимом)?

mosh bastion_host ssh internal_user@internal_host
0

Я использую mosh для подключения к бастионному серверу и запускаю tmux в этом сеансе, чтобы поддерживать постоянные соединения с внутренними серверами. Это может быть более полезным для вашей ситуации.

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