Назад | Перейти на главную страницу

как получить доступ к частному хосту через публичный

У меня есть несколько экземпляров AWS EC2, у одного из них есть публичный IP-адрес, у остальных нет публичных IP-адресов.

Я настроил SSH-доступ к общедоступной машине, используя пару закрытый / открытый ключ. Теперь мне нужно получить доступ к остальной сети через этот общедоступный экземпляр.

Мне сказали, что если я создам .pem файл из моей пары ключей и установить его в общедоступном экземпляре, я смогу сначала подключить SSH к общедоступному экземпляру, а оттуда - SSH для остальных.

Это не кажется правильным. Копирование моих закрытых ключей в другой экземпляр небезопасно. Можно ли настроить туннель (каким бы он ни был, я не системный администратор) с моего локального компьютера, на котором есть пара ключей к экземплярам назначения?

Если у вас есть доступ к частным хостам с общедоступного хоста, вы можете настроить локальную конфигурацию ssh ~/.ssh/config чтобы использовать ваш общедоступный хост в качестве прокси-сервера ssh:

Host PublicServer
        Hostname PUBLIC_DNS_OR_IP_HERE
        User USERNAME_HERE
        # Default ~/.ssh/id_rsa
        IdentityFile /path/to/your/private/ssh/key

Host PrivateHost2
        Hostname 192.168.168.2

Host PrivateHost3
        Hostname 192.168.168.3

Host PrivateHost* 192.168.168.*
        Hostname %h
        User PRIVATE_HOSTS_USERNAME
        #Compression yes
        #ForwardX11 no
        #IdentityFile ~/.ssh/id_rsa
        ProxyCommand ssh -W %h:%p PublicServer

Тогда ты можешь просто бежать ssh PrivateHost3 для подключения к частному хосту через PublicServer или даже ssh 192.168.168.3, в этом случае вам не нужно создавать записи PrivateHostN. Не нужно помещать свой закрытый ключ в PublicServer, все работает прозрачно.

Вы используете VPC или EC2 Classic? Все ли эти экземпляры находятся в одной подсети или, по крайней мере, все в одном VPC?

Если у вас есть экземпляры в том же VPC / подсети, я бы сделал следующее:

  • Для общедоступного IP-адреса / экземпляра настройте группу безопасности, чтобы разрешить входящий SSH из вашей глобальной сети или заблокировать рабочий IP-адрес.

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

  • Создайте группу безопасности, которая разрешает входящий доступ к частным экземплярам ТОЛЬКО из общедоступного экземпляра. Вы можете использовать IP-адрес / 32, чтобы указать общедоступный экземпляр в качестве ожидаемого IP-адреса, входящего в порты SSH частных экземпляров. Или вы можете полениться и использовать диапазон внутренней подсети - на ваше усмотрение.

    -Теперь SSH в общедоступный экземпляр, используя общедоступный IP-адрес. Затем попробуйте подключиться к частным экземплярам, ​​используя только внутренние или частные IP-адреса, назначенные экземплярам - теперь вы должны иметь возможность подключиться.