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

В основном у меня есть компьютер (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 в прокси и ссылаться на него на ПК, чтобы мне не пришлось переносить его на ПК?

1 ответ1

0

[...] возможно ли сохранить 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 если вы знаете, что уже загрузили ключи в свой локальный агент.

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