[LINUX] Verfahren zum Hochladen von Cloud9 in das GitHub-Repository (einschließlich Fehlerbehebungsmethode)

Apropos

Ich habe es für diejenigen gemacht, die sagen.

Ich selbst habe Git / GitHub mit git bash verwendet, aber als ich git zum ersten Mal mit Cloud9 verwendet habe, habe ich verschiedene Fehler erhalten und war in Schwierigkeiten. Daher dachte ich, ich wollte einen Artikel für Cloud9 und habe ihn erstellt. ..

Außerdem wird davon ausgegangen, dass das GitHub-Repository "öffentlich" ist. (Das Verfahren scheint anders zu sein, wenn es privat ist)

Einführung

Bereiten Sie zunächst ein Cloud9-Terminal vor. Stellen Sie für alle Fälle sicher, dass Git enthalten ist. (Natürlich ist es in Cloud9 enthalten)

$ git --version
git version 2.14.5

Erstellen Sie ein lokales Repository

Wechseln Sie in ein Verzeichnis, in dem Sie ein lokales Repository erstellen möchten

$ git init

Generiert ein ".git" -Verzeichnis (lokales Repository).

Zum Staging-Bereich hinzufügen

Fügen Sie zunächst den Staging-Bereich hinzu

$ git add [file]

In lokales Repository übertragen

Übertragen Sie dann die Dateien im Staging-Bereich in das lokale Repository

$ git commit -m "[Jede Nachricht]"

Remote-Repository-Registrierung und Git-Push

Wenn Sie ein Commit durchführen können, ist die Registrierung im lokalen Repository von git, das in cloud9 erstellt wurde, abgeschlossen. Als nächstes müssen Sie in das GitHub-Repository (Remote-Repository) pushen (hochladen). Zunächst aus der Registrierung des Remote-Repositorys

$ git remote add origin [email protected]:[Eigenes GitHub-Repository].git

danach,

$ git push -u origin master

Ich denke, es gibt Leute, die hier den folgenden Fehler bekommen.

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

Der obige Fehler hat für jede Zeile die folgende Bedeutung:

Berechtigung mit öffentlichem Schlüssel verweigert.
Das Remote-Repository kann nicht gelesen werden.
Haben Sie Zugriffsrechte? Oder existiert das Repository selbst?

Lösen wir den Fehler.

Ich denke, dass die Registrierung des Remote-Repositorys früher abgeschlossen wurde. Daher ist die Fehlermeldung "Existiert das Remote-Repository selbst?" Kein Problem.

Jetzt lasst uns Zugang bekommen.

** Für den Zugriff auf GitHub ist ein öffentlicher Schlüssel erforderlich. ** ** ** Sie können darauf zugreifen, indem Sie einen öffentlichen Schlüssel in der Entwicklungsumgebung erstellen und den öffentlichen Schlüssel in GitHub registrieren.

Öffentlichen Schlüssel erstellen

Erstellen Sie zunächst einen öffentlichen Schlüssel im Verzeichnis in cloud9.

$ ssh-keygen -t rsa -C "[Meine E-Mail-Adresse, unter der ich das Remote-Repository registriert habe(・ ・ ・@gmail.com etc.)]"

(Es kann ohne den Kommentarteil nach -C ausgeführt werden, aber es scheint üblich zu sein, die in GitHub registrierte E-Mail-Adresse anzugeben.)

"Ssh-keygen" ist ein Befehl zum Erstellen eines öffentlichen und eines privaten SSH-Schlüssels (Secure SHell). Die Bedeutung der Option ist übrigens

Wenn Sie mehr Details wissen möchten, finde ich den folgenden Artikel gut. https://www.atmarkit.co.jp/ait/articles/1908/02/news015.html

Bei der Ausführung wird die folgende Meldung angezeigt. Es gibt 3 Zeilen, die mit Enter ~ beginnen, und Sie werden aufgefordert, jede Zeile einzugeben. Es ist jedoch kein Problem, wenn Sie die Eingabetaste drücken, ohne etwas einzugeben.

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:

Wenn Sie oben dreimal die Eingabetaste drücken, wird die folgende Meldung angezeigt und der öffentliche Schlüssel erstellt. (Der Teil des Randomart-Bildes wurde entsprechend umgeschrieben.)

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]-----+

Überprüfen Sie dann das Verzeichnis .ssh und Sie werden sehen, dass der öffentliche Schlüssel erstellt wurde.

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

Kopieren Sie den Inhalt der Datei id_rsa.pub

Zeigen Sie den Dateiinhalt von id_rsa.pub mit dem folgenden Befehl an und kopieren Sie den Inhalt. (Es ist in Ordnung, den gesamten Inhalt der Datei zu kopieren, anstatt den Inhalt mit dem Befehl less anzuzeigen.)

$ less ~/.ssh/id_rsa.pub

Kopieren Sie den Teil der Datei, der unten mit ssh-rsa beginnt. (Es spielt keine Rolle, ob Sie die E-Mail-Adresse in die Kopie aufnehmen oder nicht, da sie sich nicht ändert.)

ssh-rsa ...
・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・[Mail Adresse]

Registrieren Sie Ihren öffentlichen Schlüssel auf GitHub

Ich werde den Teil registrieren, den ich gerade auf GitHub kopiert habe, aber zuerst über einen Browser auf GitHub zugreifen und in meinem Profilbild oben rechts auf "Einstellungen" klicken

image2.png

Wählen Sie dann links im Menü "SSH- und GPG-Schlüssel" und klicken Sie auf "Neue SSH-Schlüssel".

image3.png

Dann erscheint der Registrierungsbildschirm. Fügen Sie den Wortlaut beginnend mit "ssh-rsa", den Sie zuvor kopiert haben, in den Textbereich des "Schlüssel" -Teils des Registrierungsbildschirms ein. Der Titel spielt übrigens keine Rolle.

image4.png

Klicken Sie nach dem Einfügen auf "SSH-Schlüssel hinzufügen".

In vielen Artikeln heißt es, dass Sie eine Verbindung herstellen können, indem Sie den folgenden Befehl eingeben. Es gibt jedoch Fälle, in denen ein Fehler auftritt und die Verbindung fehlschlägt.

$ ssh -T [email protected]

Konfigurationsdatei erstellen

Wenn die Verbindung fehlschlägt, erstellen Sie eine Datei mit dem Namen "config" im Verzeichnis .ssh. Erstellen Sie eine Datei und beschreiben Sie deren Inhalt mit vim.

$ vim ~/.ssh/config

Fügen Sie den folgenden Wortlaut in den Inhalt der Konfigurationsdatei ein. Bitte ändern Sie den Pfad nach ** IdentityFile ** in den Pfad, in dem Ihre eigene "id_rsa" -Datei gespeichert ist.

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

Berechtigungseinstellungen für neu erstellte Dateien

Legen Sie nach dem Erstellen die Berechtigungen fest. Nachdem Sie eine neue Datei erstellt haben, legen Sie die entsprechenden Berechtigungen fest, damit sie ordnungsgemäß ausgeführt werden kann.

Anfangs hat die Konfigurationsdatei keine Berechtigungen.

Aber dieses Mal müssen wir es in einen Zustand versetzen, in dem "** Besitzer ** ** Leseberechtigung ** hat und ** andere Benutzer ** keine ** Berechtigung ** haben".

Daher sollte die Behörde 600 oder 400 sein. (Weil Sie möglicherweise eine Schreibberechtigung haben oder nicht)

Geben Sie niemand anderem als dem Eigentümer Autorität. Gehen Sie für 600 wie folgt vor:

$ chmod 600 ~/.ssh/config

Führen Sie ssh aus

Dann machen Sie folgendes:

$ ssh -T [email protected]

Führen Sie es aus, und wenn die folgende Zeichenfolge ausgegeben wird, ist es OK!

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

** Jetzt kannst du pushen. ** ** **

Machen Sie zum Schluss einen Git-Push

Mit git push können Sie Dateien aus Ihrem lokalen Repository in ein Remote-Repository hochladen.

$ git push origin master

Das ist es!

Recommended Posts

Verfahren zum Hochladen von Cloud9 in das GitHub-Repository (einschließlich Fehlerbehebungsmethode)
So klonen Sie ein Github-Remote-Repository von Atom
[Python] Lokal → Verfahren zum Hochladen von Dateien in S3 (boto3)
Newton-Methode für maschinelles Lernen (von 1 Variablen zu mehreren Variablen)