web-dev-qa-db-fra.com

Comment obtenir les clés ssh pour une nouvelle instance de Google Compute Engine?

Je suis un nouvel utilisateur d'essai de Google Cloud, issu du monde Amazon EC2, et je suis totalement dérouté par la façon dont je me connecte via ssh à une nouvelle instance de Google Compute Engine VM.

J'ai créé une nouvelle instance via la console Web Google Cloud (à partir d'une image CentOS 6.x, le cas échéant). J'ai vu un blanc sur le formulaire de création où je pouvais coller une clé ssh existante, mais comme c'était ma première instance, je n'en avais pas encore. J'ai supposé que cela me ferait suivre le processus de création de clé comme le fait Amazon EC2. Ça n'a pas. Il semble avoir créé l'instance, mais je ne vois pas comment obtenir les clés ssh pour cela. La page Web de l'instance comporte un bouton indiquant "ssh" et me permet de me connecter brièvement via une fenêtre de navigateur Web contextuelle simulant une session ssh. Cependant, cela ne me laisse entrer que dans un compte d'utilisateur, pas dans un compte root. La fenêtre contextuelle contenait un élément de menu permettant de changer d'utilisateur. Je l'ai changé en "racine", après quoi il ne génère que des erreurs de connexion et je ne peux plus me connecter à mon instance.

J'ai effectué une recherche, mais je n'ai trouvé aucune documentation simple expliquant cet aspect des instances de calcul Google. J'ai effectué des recherches dans la console Web, mais je n'ai pas trouvé le mécanisme de création/sélection de clé ssh, ni aucun moyen de créer ou de télécharger les clés d'une instance.

Dois-je créer mes propres clés ssh manuellement et les coller dans le formulaire lors de la création ou y a-t-il une autre étape évidente qui me manque?

21
steevithak

Par défaut, les clés SSH ne sont pas pré-assignées dans une nouvelle instance GCE (GCE) VM. Vous ne pouvez donc pas les "récupérer" car elles n'existent pas. Il vous appartient de les créer. ou utilisez un outil comme gcloud (voir ci-dessous) qui vous invitera à les créer si vous n'avez pas encore de clé SSH.

Vous disposez de plusieurs options pour vous connecter à votre nouvelle machine virtuelle GCE.

Une option consiste à vous connecter en utilisant le bouton "SSH" dans l'interface graphique de la console développeur à côté de l'instance dans la liste des instances, ce qui ouvrira une fenêtre de navigateur et une session de terminal à l'instance.

Si vous souhaitez vous connecter via le client SSH sur la ligne de commande, vous pouvez utiliser l'outil gcloud (élément du Google Cloud SDK ):

gcloud compute ssh example-instance

Vous pouvez voir le jeu complet d’indicateurs et d’options sur la page d’aide gcloud compute ssh , ainsi que plusieurs exemples.

Si vous ne possédez pas déjà de clés SSH, il vous sera demandé de les créer, puis de vous connecter à l'instance. Si vous avez déjà des clés, vous pouvez utiliser les clés SSH existantes, qui seront transférées à l'instance.

Par défaut, gcloud s'attend à ce que les clés soient situées dans les chemins suivants:

  • $HOME/.ssh/google_compute_engine - clé privée
  • $HOME/.ssh/google_compute_engine.pub - clé publique

Si vous souhaitez réutiliser des clés d'un emplacement différent avec gcloud, envisagez de créer des liens symboliques ou de pointer gcloud à l'aide de l'indicateur --ssh-key-file .

Remarque: si vous n'utilisez pas du tout gcloud, vous devez ajouter manuellement les clés SSH aux métadonnées de l'instance, comme décrit dans la section Configuration des clés ssh au niveau de l'instance que vous pouvez utiliser via gcloud ou manuellement via console Google Cloud _.

Vous pouvez également créer vos propres clés en utilisant ssh-keygen qui est ce que gcloud utilisera également sous les couvertures. Vous pouvez vous connecter à l'instance en utilisant ssh directement au lieu de gcloud, mais vous devrez spécifier des paramètres supplémentaires pour le faire:

ssh -i KEY_FILE -o UserKnownHostsFile=/dev/null \
    -o CheckHostIP=no -o StrictHostKeyChecking=no \
    USER@IP_ADDRESS

ce qui nécessitera les paramètres suivants:

  • KEY_FILE - [Obligatoire] Le fichier dans lequel les clés sont stockées sur l'ordinateur, par exemple ~/.ssh/google_compute_engine.

  • USER - [Obligatoire] Nom d'utilisateur pour se connecter à cette instance. Il s'agit généralement du nom d'utilisateur de l'utilisateur local exécutant gcloud compute.

  • IP_ADDRESS - [Obligatoire] Adresse IP externe de l'instance. 

Pour plus de détails, voir les documents SSH .

40
Misha Brukman

Pour vous connecter à une instance à l'aide de ssh- [Toutes les étapes sous Linux Ubuntu 16.04]

  1. Créez une clé SSH ssh-keygen -t rsa -f ~/.ssh/gcloud_instance1 -C varunon9 ici gcloud_instance1 est le nom du fichier de clé et varunon9 est le nom d'utilisateur

  2. Imprimer le contenu du fichier de clé publique cd ~/.ssh && cat gcloud_instance1.pub

  3. Cliquez sur l'icône Modifier les détails de l'instance VM  enter image description here

  4. Collez le contenu du fichier de clé publique (sortie de cd ~/.ssh && cat gcloud_instance1.pub) dans la zone de texte ssh-keys

     enter image description here  enter image description here

  5. Cliquez sur Enregistrer

  6. Depuis terminal, vous pouvez maintenant vous connecter à votre instance via ssh ssh -i gcloud_instance1 [email protected], où gcloud_instance1 est un fichier de clé privée (dans le répertoire .ssh) et varunon9 est un nom d'utilisateur et 35.200.201.56 est une adresse IP externe de votre instance.

6
Varun Kumar

Une fois que vous avez ouvert la console, essayez d’afficher la commande gcloud dans l’onglet ssh. Le client gcloud s'ouvrira avec la commande suivante.

gcloud compute --project ssh --zone 

Et si c'est la première fois, il créera la clé ssh pour vous. Il vous suffit de télécharger le fichier à cet emplacement ~ ~/.ssh/google_compute_engine en utilisant l’option de téléchargement du fichier client gcloud en haut à droite. Une fois que vous avez le fichier de clé, il suffit de publier 

ssh -i nom d'utilisateur @ external_IP

0
Abubacker Siddik