SSH Jump Host БЕЗ переадресации агента

SSH Jump Host БЕЗ переадресации агента

Хотя вопрос простой, я безуспешно ищу ответ уже несколько дней.

M = My machine 
J = Jump Host
S = Server

Jump Host has my public key on authorized_keys.
Server has J's public key on authorized_keys.

Allowed connections (due to key authentication):
M -> J
J -> S

Как мне подключиться к S по ssh с моей машины?

Моя текущая конфигурация:

host jump
  user root
  HostName x.x.x.x

host server
  user root
  HostName x.x.x.x
  port 22
  ForwardAgent no
  ProxyCommand ssh jump -W %h:%p

Не работает, пытается войти с помощью ключа М.

Вот журнал ssh

debug1: Host 'x.x.x.x' is known and matches the ECDSA host key.
debug1: Found key in /Users/xxxxx/.ssh/known_hosts:1542
...
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/xxxxx/.ssh/id_rsa
debug1: Authentications that can continue: publickey
debug1: Trying private key: /Users/xxxxx/.ssh/id_dsa
debug1: Trying private key: /Users/xxxxx/.ssh/id_ecdsa
debug1: Trying private key: /Users/xxxxx/.ssh/id_ed25519
debug1: No more authentication methods to try.
Permission denied (publickey).
Killed by signal 1.

решение1

Проблема в том, что он пытается использовать мой ключ (M) для аутентификации в S, когда предполагается использовать ключ J. Я не могу указать ключ для использования с IdentityFile, поскольку он находится на J, а не на моей машине.

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

Команда ssh jump -W %h:%pв proxy запускает сеанс ssh к вашему хосту jump, но не создает оболочку, а просто создает туннель напрямую к хосту назначения. Затем ваш клиент делает ssh к туннелю. Ни в какой момент на хосте jump не запускается оболочка, которая позволила бы вам получить доступ к любым ключам, хранящимся на этом промежуточном хосте в этом типе настройки. Возня с переадресацией ничего не дает. Переадресация не используется для инициирования соединения.

решение2

Вы не входите в брандмауэр, это сетевое устройство, которое ограничивает пакеты. В этом сценарии оно по сути невидимо. Его нужно настроить так, чтобы пакеты могли достигать вашего сервера-бастиона (jumphost), который имеет порт 22 на входе и, вероятно, порты высокого диапазона на выходе.

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

Обновление на основе дополнительной информации Вам не нужен ключ bastion / jump host на целевом сервере, вам нужен ваш ключ. Это не bastion пытается получить доступ к серверу, это пользователь, т. е. вы.

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

Связанный контент