SSH с A через B на C, используя закрытый ключ на A

Это мой сценарий:

  • Хост C недоступен из A.
  • Хост B доступен из A.
  • Хост C доступен из B.
  • И B, и C имеют ~ / .ssh / id_rsa.pub (от A) в authorized_keys
  • B не имеет закрытого ключа ( ~ / .ssh / id_rsa ), поскольку это представляет угрозу безопасности (ключ является личным).
  • поскольку у B нет закрытого ключа, невозможно войти в систему C с его помощью

Как я могу использовать ключ на хосте А для входа на хост C? Это возможно? Я не боюсь.

(похоже, но отличается от этого вопроса )

РЕДАКТИРОВАТЬ

Что мне нужно, так это способ предоставить на лету (стандартный ввод или аналогичный) закрытый ключ к ssh-переходу в B, не касаясь файловой системы в B. Возможно ли это?

4
задан 9 October 2018 в 13:54
3 ответа

Если вы используете последнюю версию OpenSSH, вы можете просто ввести:

ssh -J B C

Если вы используете немного старую версию без поддержки -J , вы можете использовать слегка более сложный синтаксис:

ssh -o ProxyCommand='ssh -W %h:%p B' C

Если вам это нужно каждый раз, когда вы ssh от A до C, может быть полезно добавить запись в ваш .ssh / config файл, который выглядит следующим образом (в последних версиях):

Host C
   ProxyJump B

Или так (в более старых версиях):

Host C
   ProxyCommand ssh -W %h:%p B

Используя любой из вышеперечисленных способов, вы можете просто ввести ssh C , чтобы открыть соединение. Это особенно полезно, когда вы используете ssh косвенно через один из многих инструментов, которые используют ssh для своего транспорта. Не все эти инструменты обеспечивают простой способ передачи флагов командной строки команде ssh .

5
ответ дан 3 December 2019 в 03:15

Tai gana lengva. Tiesiog naudokitės agento persiuntimu (-A parinktis ssh).

Pavyzdys:

#On machine A use
ssh -A user@<machine_B>
#Then on machine B use
ssh -A user@<machine_C>

Nereikia visur kopijuoti privačių raktų. - A persiunčia tik visus SSH agento prašymus į pirmąją grandinės mašiną,Taigi asmeninis raktas mašinoje A gali būti naudojamas tol, kol neperjungiate naudotojų į tarpines mašinas.

Jei pakeisite savo vartotoją mašinoje B (pvz., su su foo į vartotojo foo), agento persiuntimas nebus dirbti ilgiau, nes kitas ryšys atliekamas kaip vartotojo foo su savo raktais.

0
ответ дан 3 December 2019 в 03:15

Я наткнулся на этот вопрос, когда искал то же самое. Решение здесь с ключами выглядит так:

ssh -o ProxyCommand="ssh -i /path/proxy.pem -W %h:%p user@proxy_host" -i /path/target.pem user@target_host

Тем не менее, я не могу взять на себя ответственность, так как это решение взято из другого вопроса, но я убедился, что этот подход работает.

0
ответ дан 21 May 2021 в 18:00

Теги

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