SSH proxyjump с идентификационным файлом только в прокси

812
Adriano_epifas

Я не мог найти свой конкретный случай в других темах.

В основном у меня есть компьютер (Ubuntu), прокси (Debian) и цель (Debian). Я хочу сделать проксимейдж от ПК до цели, проходящей через прокси. Аутентификация от прокси до цели и от ПК до прокси использует аутентификацию pubkey, и у каждой машины есть своя пара ключей.

Privkey в ПК совпадает с pubkey ПК в прокси, и они находятся в каталоге по умолчанию. Итак, я просто запускаю ssh user@proxy inПК, и он прекрасно подключается к прокси. В прокси я должен указать ssh -i mypubkey user@targetserverдля подключения нормально (это не ключ по умолчанию).

Теперь с ПК я не знаю, как выполнить одну команду и попасть в цель, так как мне нужно указать privkey в прокси. Я старался:

ssh -J user@proxy user@target ssh -Ao ProxyCommand="ssh -W %h:%p user@proxy" user@target 

Но это дает мне ошибку. Отказано в доступе (publickey).

В прокси-сервере я пытался добавить директиву IdentityFile в ~/.ssh/configи в, /etc/ssh/ssh_configно, очевидно, когда я вызываю прокси с ПК в качестве хоста перехода, он не будет принимать конфигурации из этих файлов.

Если я принесу privkey с прокси на ПК и укажу, -iнапример, он работает (это будет ssh -i mypubkey -J user@proxy user@target). Поэтому мой вопрос: возможно ли сохранить privkey в прокси и ссылаться на него на ПК, чтобы мне не пришлось переносить его на ПК?

0

1 ответ на вопрос

0
eggo

[...] возможно ли сохранить privkey в прокси и ссылаться на него на ПК, чтобы мне не пришлось переносить его на ПК?

Краткий ответ: нет

Причина. Все ссылки на конфигурационные файлы (или в командной строке) на локальном ПК относятся к файлам, расположенным на локальном устройстве (ПК). Вы не можете ссылаться на удаленные (прокси) файлы с вашего ПК, к которому sshесть доступ, когда sshпытается установить соединение.

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

Предложенный обходной путь: у вас уже есть настройка, работающая с ключом proxy-to-target на вашем локальном ПК. Либо продолжайте с этим, либо используйте ssh-agent и forwarding для предоставления доступа без пароля, который, я полагаю, вы хотите сохранить. Пример ~/.ssh/configзаписи:

Host target ProxyJump user@proxy IdentityFile .../target-id_rsa  Host proxy IdentityFile .../proxy-id_rsa ForwardAgent yes 

Вероятно, вы можете обойтись без IdentityFileдиректив, если знаете, что уже загрузили ключи в своего местного агента.

Я думаю, это имеет смысл. Та же ситуация происходит с TOR, если я не ошибаюсь. Adriano_epifas 6 лет назад 0

Похожие вопросы