Назад | Перейти на главную страницу

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

Он не работает, так как пытается войти в систему с помощью ключа M.

Вот журнал 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.

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

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

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

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

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

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

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