Я понимаю, что не рекомендуется задавать несколько вопросов в одном сообщении, но все они тесно связаны, поэтому задаю их в одном сообщении.
Я пытался подключиться к SSH к частному экземпляру EC2 в VPC.из интернета с помощью хоста Bastion.Я сталкивался с 2 подходами. ПРИМЕЧАНИЕ Когда я запустил свой частный экземпляр EC2 и хост Bastion, я выбрал разные ключи (в обоих подходах, которые я видел, авторы использовали одни и те же ключи для EC2 и Bastion)
Подход1 : Настройка SSH ProxyCommand, как показано в https://www.youtube.com/watch?v=EpFAHis4O4g
Подход 2: Команда ssh-agent с опцией ssh -A https://aws.amazon.com/blogs/security/securely-connect-to-linux-instances-running-in-a-private-amazon-vpc/
Вопрос 1: В подходе 2 я сделал
ssh-add ~/Downloads/Ec2.pem
ssh-add ~/Downloads/BastionKey.pem
Правильно ли мой подход добавления обоих ключей в ssh-agent?Таким образом, я смог использовать ssh в Bastion в качестве первого шага, а затем в качестве второго шага мне пришлось явным образом использовать ssh в приватном EC2.
Вопрос 2: Подход 1 противоречит идее (Подход 2) двухшагового процесса ssh, но предлагает ProxyCommand, чтобы конечный пользователь мог иметь возможность напрямую подключаться по ssh к частному EC2 в одномшаг.Таким образом, системный администратор хоста Bastion не сможет контролировать ssh-шинг для отдельных экземпляров EC2. Фактически автор демонстрирует, что если вы перейдете по ssh к хосту Bastion (это будет успешно выполнено), а затем по ssh в EC2 это не удастся.Правильно ли мое понимание здесь?
Вопрос 3: Подход 1 не работает для меня.Я использовал ту же структуру для ~ / .ssh / config, но с разными путями файлов ключей.Я не могу напрямую подключиться к своему личному EC2.Я даже попробовал двухэтапный процесс, но я могу только войти в хост Bastion, я не могу ssh к EC2.Все мои группы безопасности, ACL, интернет-шлюз, NAT-шлюз и настройки VPC в порядке, иначе подход 2 не сработал бы.Что я могу делать не так?
cat ~/.ssh/config
HOST bastion
Hostname ec2-5x-xx-xx-xx.compute-1.amazonaws.com
User ec2-user
IdentityFile /Users/myname/Downloads/BastionKey.pem
HOST *.ec2.internal
User ec2-user
IdentityFile /Users/myname/Downloads/Ec2.pem
ProxyCommand ssh -q -W %h:%p bastion
Вопрос 4: Какой рекомендуемый подход среди 1 и 2 и какие дополнительные шаги необходимо выполнить, когда выбраны разные ключи для Bastion и EC2?
Ошибка вывода:
ssh -v ip-10-0-1-12.ec2.internal
OpenSSH_7.8p1, LibreSSL 2.6.2
debug1: Reading configuration data /Users/myname/.ssh/config
debug1: /Users/myname/.ssh/config line 6: Applying options for *.ec2.internal
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 48: Applying options for *
debug1: Executing proxy command: exec ssh -q -W ip-10-0-1-12.ec2.internal:22 bastion
debug1: identity file /Users/myname/Downloads/Ec2.pem type -1
debug1: identity file /Users/myname/Downloads/Ec2.pem-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.8
/bin/false: No such file or directory
ssh_exchange_identification: Connection closed by remote host