Ich habe2 Instanzenin AWS. Einer von ihnen in einemöffentliches Subnetz(Bastion), die zweite in einerprivates Subnetz.
Beide wurden mit dem gleichen Schlüsselpaar gestartet (.pemDatei).
So verbinde ich mich mit der Bastion:
ssh -i secret.pem ec2-user@public-ip
Funktioniert super, ich bin dabei.
Nun möchte ich die Instanz in einem privaten Subnetz per SSH verbinden. Google sagt, dass ich den Agenten weiterleiten soll:
ssh -A ubuntu@private-ip
Aber leider bekomme ich die Fehlermeldung:
Permission denied (publickey).
Kann mir bitte jemand erklären, was ich falsch mache und wie ich eine SSH-Verbindung zur privaten Instanz herstelle? (Ping und Sicherheitsgruppen sind ok)
Antwort1
So würde ich es machen:
Erstellen Sie auf Ihrem eigenen Laptop die Datei ~/.ssh/config (oder bearbeiten Sie die vorhandene Datei) und fügen Sie Folgendes hinzu:
Host [host or ip of the bastion server]
User ec2-user
IdentityFile ~/.ssh/pem_file_required_to_connect_to_bastion
Host [host or ip of the bastion server]
User ec2-user
IdentityFile ~/.ssh/pem_file_required_to_connect_to_server
ProxyCommand ssh ec2-user@CHOSEN_HOST -W %h:%p
Ersetzen Sie CHOSEN_HOST durch denselben Host, den Sie für den Bastion-Server konfiguriert haben.
Beispiel:
cat ~/.ssh/config
Host 3.126.138.136
User ec2-user
IdentityFile ~/.ssh/itaig.pem
Host 172.31.22.212
User ec2-user
IdentityFile ~/.ssh/itaig.pem
ProxyCommand ssh [email protected] -W %h:%p
~/.ssh at 02:40:57 PM
❯
ssh 172.31.22.212
Last login: Sun Aug 8 11:40:41 2021 from ip-172-31-29-253.eu-central-1.compute.internal
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory
[ec2-user@ip-172-31-22-212 ~]$