Go x / crypto / ssh - Как установить ssh-соединение с частным экземпляром через бастионный узел

Я хочу реализовать этот сценарий: в AWS у меня есть VPC, в котором развернута публичная и частная подсети. В общедоступной подсети у меня есть «бастионный» экземпляр, в то время как в частной подсети есть один узел, на котором запущены некоторые службы (AKA «экземпляр службы»). Используя команду * nux ssh, я могу сделать что-то подобное для подключения к «экземпляру службы» с моего локального ноутбука:

ssh -t -o ProxyCommand="ssh -i <key> ubuntu@<bastion-ip> nc %h %p" -i <key> ubuntu@<service-instance-ip>

У меня есть программа Go, и я хочу сделать следующее:

SSH подключиться к «экземпляру службы» с «локального ноутбука» через «бастион»используйте сеанс подключения для запуска некоторых команд (например, "ls -l")загрузить файлы с «локального ноутбука» в «сервисный экземпляр»

Я пытался, но не смог реализовать тот же процесс, что и делать

ssh -t -o ProxyCommand="ssh -i <key> ubuntu@<bastion-ip> nc %h %p" -i <key> ubuntu@<service-instance-ip>

Может ли кто-нибудь помочь показать мне пример? Спасибо!

Кстати, я нашел это:https://github.com/golang/go/issues/6223что означает, что он определенно способен сделать это, верно?

Ответы на вопрос(1)

Ваш ответ на вопрос