J'ai trébuché en étudiant la connexion ssh du serveur de la plateforme au serveur privé en utilisant EC2, donc je la posterai pour la première fois à titre d'exemple. [Articles de référence](https://qiita.com/fgem28/items/2c068eab3b34336147fb#%E5%8F%82%E8%80%83%E3%81%AB%E3%81%95%E3 % 81% 9B% E3% 81% A6% E3% 81% 84% E3% 81% 9F% E3% 81% A0% E3% 81% 84% E3% 81% 9F% E8% A8% 98% E4% BA Comme je l'ai écrit dans% 8B), il existe de nombreux autres articles sur Qiita, veuillez donc vous y référer également.
Je veux créer EC2 dans chacun du sous-réseau public et du sous-réseau privé créés dans le même AZ, et configurer la connexion au serveur privé pour utiliser le serveur public comme tremplin.
Définir les groupes de sécurité par défaut et par autorisation ssh pour le serveur de plate-forme dans le sous-réseau public Définissez un groupe de sécurité qui autorise toutes les communications dans vpc copiées par défaut sur le serveur du sous-réseau privé
Connexion ssh normale au serveur pas à pas ok Confirmez que vous êtes en vie en ignorant le ping du serveur de plate-forme vers le serveur privé
ping 192.168.1.39
À l'heure actuelle, le serveur de plate-forme n'a pas de clé privée, donc la connexion ssh du serveur de plate-forme au serveur privé n'est pas possible. Il existe deux modèles principaux à connecter
Il n'est pas si bon de mettre la clé privée sur le serveur de la plate-forme, alors essayez la méthode d'accès de l'extérieur à la fois avec l'option ProxyCommand
Créez un nouveau ~ / .ssh / config et écrivez comme suit,
~/.ssh/config
Host test-private
HostName 192.168.1.39 #IP privée du serveur privé
User ec2-user
IdentityFile ~/.ssh/practice.pem
ProxyCommand ssh 3.*.*.* -W %h:%p #IP publique du serveur de la plateforme
J'ai essayé la connexion ssh, mais je n'ai pas pu me connecter
$ ssh test-private
Nom d'utilisateur Mac@3.*.*.*: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
ssh_exchange_identification: Connection closed by remote host
Je l'ai essayé en référence à divers articles.
J'ai défini les autorisations pour ~ / .ssh / config, mais cela ne change pas
chmod 600 ~/.ssh/config
Même si je définis l'autorisation de la clé privée, cela ne change pas
chmod 600 ~/.ssh/practice.pem
Même si j'essaye d'ajouter sudo, l'erreur suivante
$ sudo ssh test-private
Password:
ssh: Could not resolve hostname test-private: nodename nor servname provided, or not known
Lignes supprimées commençant par la même adresse IP dans ~ / .ssh / known_hosts mais inchangées
Essayez une commande sur une ligne, mais non
$ ssh -o ProxyCommand='ssh -i ~/.ssh/practice.pem ec2-user@3.*.*.* -W 192.168.1.39' -i ~/.ssh/practice.pem [email protected]
Bad stdio forwarding specification ‘192.168.1.39’ #IP du serveur privé
ssh_exchange_identification: Connection closed by remote host
J'ai configuré le groupe de sécurité pour autoriser la connexion ssh au serveur privé, mais cela n'a pas fonctionné.
Dans des moments comme celui-ci, ** dormir est le meilleur **.
Quand je me suis réveillé et j'ai regardé en arrière, il y avait quelque chose d'étrange.
$ ssh test-private
Nom d'utilisateur Mac@3.*.*.*: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
ssh_exchange_identification: Connection closed by remote host
Je l'ai oublié, mais pour une raison quelconque, ce message d'erreur montre le nom d'utilisateur Mac. À l'origine, il devrait être ec2-user (si les paramètres par défaut sont utilisés).
Après avoir modifié ~ / .ssh / config comme suit,
~/.ssh/config
###Ajoutez ce qui suit
Host test-bastion
Hostname 3.*.*.*
User ec2-user
IdentityFile ~/.ssh/practice.pem
###Ajouter ici
Host test-private
Hostname 192.168.1.39
User ec2-user
IdentityFile ~/.ssh/practice.pem
ProxyCommand ssh test-bastion -W %h:%p ###Tester qu'il s'agissait de l'adresse IP d'un serveur privé-Changer en bastion
Connexion réussie! !!
$ ssh test-private
The authenticity of host '192.168.1.39 (<no hostip for proxy command>)' can't be established.
ECDSA key fingerprint is SHA256:l98F1hMEnkNJR+9ON6GWpq/UQfpm34B62g11byAP15c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.39' (ECDSA) to the list of known hosts.
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-192-168-1-39 ~]$
Il semble que la manière d'écrire ~ / .ssh / config était mauvaise. Je n'ai écrit qu'un seul paramètre pour connecter l'étape, donc je sens que je dois écrire les deux et créer un flux de "step → private". Et ** abandonner et se coucher ** est également une mesure efficace.
Méthode SSH en plusieurs étapes via le serveur d'étapes
AWS Study Group (1) / Creation of Step Server and Network
Recommended Posts