1

Я пытаюсь подключиться к своему частному экземпляру VPC через экземпляр NAT с туннелированием

я определяю -A, чтобы сделать экземпляр NAT агентом для моего ключа и -i для файла ключа. При попытке

ssh -A -i 'path_to_key' ec2-user@net.instance.ip

он работает и подключается к моему NAT, но при попытке туннелирования к моему частному экземпляру всегда происходит сбой из-за проблемы с ключом

   ssh -A -i 'path_to_key' ec2-user@net.instance.ip ssh -t -t ubuntu@private_instance_ip

Я предположил, что он не передает мой ключ от NAT к частному экземпляру.

Когда вы выполняете ssh-add path_to_key а затем запускаете ту же команду, исключая часть -i, она также работает.

Как я могу заставить свой NAT передать ключ в параметре -i частному экземпляру?

1 ответ1

1

Опция ssh -A работает только с ключами, которые вы уже загрузили в агент, что -i не делает автоматически. Другими словами, у вас должен быть ssh-agent и ssh-add ключ.

ssh-add 'path_to_key'

Как примечание, вы используете -t в неправильном месте - ваше внутреннее соединение будет иметь tty, но не будет знать правильные параметры (например, размер окна). Опция более важна для внешнего соединения (то есть ssh -t server1 ssh server2), тогда она становится ненужной для внутреннего соединения.


Есть еще один способ сделать соединение с двумя прыжками. Вместо запуска ssh на прокси, вы можете запустить его локально, используя функцию SSH TCP-forwarding:

ssh -i 'path' -o ProxyCommand="ssh -W %H:%P ec2-user@net.instance" ubuntu@private_instance

Для этого вообще не нужен -A или агент, поскольку ваш клиент подключается напрямую к частному экземпляру.

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