[LINUX] Procédure de téléchargement de Cloud9 vers le référentiel GitHub (y compris la méthode de résolution d'erreur)

Au fait

Je l'ai fait pour ceux qui disent.

J'ai moi-même utilisé Git / GitHub avec git bash, mais lorsque j'ai utilisé git avec Cloud9 pour la première fois, j'ai eu diverses erreurs et j'ai eu des problèmes, alors j'ai pensé que je voulais un article pour Cloud9 et je l'ai créé. ..

Il est supposé que le référentiel GitHub est "public". (La procédure semble être différente si elle est privée)

introduction

Tout d'abord, préparez un terminal cloud9. Juste au cas où, assurez-vous que git est inclus. (Bien sûr, il est inclus dans Cloud9)

$ git --version
git version 2.14.5

Créer un référentiel local

Accédez à n'importe quel répertoire dans lequel vous souhaitez créer un référentiel local

$ git init

Générera un répertoire ".git" (référentiel local).

Ajouter à la zone de préparation

Tout d'abord, ajoutez à la zone de préparation

$ git add [file]

S'engager dans le référentiel local

Ensuite, validez les fichiers de la zone de préparation dans votre référentiel local

$ git commit -m "[Tout message]"

Enregistrement de référentiel distant et git push

Si vous pouvez vous engager, l'enregistrement est terminé dans le référentiel local de git créé sur cloud9. Ensuite, vous devez pousser (télécharger) vers le référentiel GitHub (référentiel distant). Tout d'abord, à partir de l'enregistrement du référentiel distant

$ git remote add origin [email protected]:[Propre référentiel GitHub].git

ensuite,

$ git push -u origin master

Je pense qu'il y a des gens qui obtiennent l'erreur suivante ici.

Permission denied (publickey). 
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists. 

L'erreur ci-dessus a la signification suivante pour chaque ligne:

Autorisation refusée avec clé publique.
Le référentiel distant ne peut pas être lu.
Avez-vous des droits d'accès? Ou le référentiel lui-même existe-t-il?

Résolvons l'erreur.

Je pense que l'enregistrement du référentiel distant a été effectué plus tôt. Par conséquent, le message d'erreur "Le référentiel distant existe-t-il?" N'est pas un problème.

Maintenant, accédons.

** Une clé publique est requise pour accéder à GitHub. ** ** Vous pouvez y accéder en créant une clé publique dans l'environnement de développement et en enregistrant la clé publique dans GitHub.

Créer une clé publique

Tout d'abord, créez une clé publique dans le répertoire à l'intérieur de cloud9.

$ ssh-keygen -t rsa -C "[Mon adresse e-mail où j'ai enregistré le référentiel distant(・ ・ ・@gmail.com etc.)]"

(Il peut être exécuté sans la partie commentaire après -C, mais il semble qu'il soit courant de spécifier l'adresse e-mail enregistrée dans GitHub)

"Ssh-keygen" est une commande pour créer une clé publique et une clé privée SSH (Secure SHell). À propos, la signification de l'option est

Si vous voulez en savoir plus, je pense que l'article suivant est bon. https://www.atmarkit.co.jp/ait/articles/1908/02/news015.html

Une fois exécuté, le message suivant apparaîtra. Il y a 3 lignes commençant par Enter ~, et il vous sera demandé d'entrer chaque ligne, mais il n'y a aucun problème si vous appuyez sur Entrée sans rien entrer.

Generating public/private rsa key pair.
Enter file in which to save the key (/home/ec2-user/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again:

Si vous appuyez sur Entrée trois fois ci-dessus, le message suivant s'affiche et la clé publique est créée. (La partie de l'image aléatoire a été réécrite correctement)

Your identification has been saved in /home/ec2-user/.ssh/id_rsa.
Your public key has been saved in /home/ec2-user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:……………………………………@gmail.com
The key's randomart image is:
+---[RSA 2048]----+
|....................       |
| ..........        |
|   ......= ......       |
|    *..... .....        |
|   ...... BS+       |
|    =...........o..      |
ho
host github
|   .................       |
|    ......o*=.....+       |
|    .E..........*......      |
+----[SHA256]-----+

Vérifiez ensuite le répertoire .ssh et vous verrez que la clé publique a été créée.

$ ls ~/.ssh/
authorized_keys  id_rsa  id_rsa.pub  known_hosts

Copiez le contenu du fichier id_rsa.pub

Affichez le contenu du fichier de id_rsa.pub avec la commande suivante et copiez le contenu. (Il est possible de copier tout le contenu du fichier au lieu de regarder le contenu avec la commande less)

$ less ~/.ssh/id_rsa.pub

Copiez la partie du fichier qui commence par ssh-rsa ci-dessous. (Peu importe que vous incluiez l'adresse e-mail dans la copie ou non, car elle ne change pas.)

ssh-rsa ...
・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・[adresse mail]

Enregistrez votre clé publique sur GitHub

Je vais enregistrer la partie que je viens de copier sur GitHub, mais d'abord accéder à GitHub à partir d'un navigateur et cliquer sur "paramètres" à partir de l'image de mon profil en haut à droite

image2.png

Sélectionnez ensuite "Clés SSH et GPG" dans le menu de gauche et cliquez sur "Nouvelles clés SSH".

image3.png

Ensuite, l'écran d'enregistrement apparaîtra. Collez le libellé commençant par "ssh-rsa" que vous avez copié précédemment dans la zone de texte de la partie "clé" de l'écran d'enregistrement. Au fait, le titre n'a pas d'importance.

image4.png

Après avoir collé, cliquez sur "Ajouter une clé SSH".

Ici, de nombreux articles disent que vous pouvez réussir à vous connecter en tapant la commande suivante, mais il y a des cas où une erreur se produit et la connexion échoue.

$ ssh -T [email protected]

Créer un fichier de configuration

Si la connexion échoue, créez un fichier appelé "config" dans le répertoire .ssh. Créez un fichier et décrivez son contenu avec vim.

$ vim ~/.ssh/config

Collez le libellé suivant dans le contenu du fichier de configuration. Veuillez remplacer le chemin après ** IdentityFile ** par le chemin qui stocke votre propre fichier "id_rsa".

Host github github.com
  HostName github.com  IdentityFile ~/.ssh/id_rsa
  User git

Paramètres d'autorisation pour les fichiers nouvellement créés

Après l'avoir créé, définissez les autorisations. Maintenant que vous avez créé un nouveau fichier, définissez les autorisations appropriées pour qu'il puisse fonctionner correctement.

Au départ, le fichier de configuration n'a aucune autorisation.

Mais cette fois, nous devons le mettre dans un état où "** le propriétaire ** a ** l'autorisation de lecture ** et ** les autres utilisateurs ** n'ont pas la ** autorisation **".

Par conséquent, l'autorité devrait être 600 ou 400. (Parce que vous pouvez ou non avoir l'autorisation d'écriture)

Ne donnez aucune autorité à quiconque autre que le propriétaire. Pour 600, procédez comme suit:

$ chmod 600 ~/.ssh/config

Exécutez ssh

Ensuite, procédez comme suit:

$ ssh -T [email protected]

Exécutez-le, et si la chaîne de caractères suivante est sortie, c'est OK!

Hi [username]! You've successfully authenticated, but GitHub does not provide shell access.

** Maintenant, vous pouvez git push. ** **

Enfin, faites un push git

Vous pouvez utiliser git push pour télécharger des fichiers de votre référentiel local vers un référentiel distant.

$ git push origin master

C'est tout!

Recommended Posts

Procédure de téléchargement de Cloud9 vers le référentiel GitHub (y compris la méthode de résolution d'erreur)
Comment cloner un référentiel distant Github depuis Atom
[Python] Local → Procédure de téléchargement de fichiers vers S3 (boto3)
Méthode Newton pour l'apprentissage automatique (de 1 variable à plusieurs variables)