Generating a new SSH key use for Github

Howto deploy SSH Key authentication for Github with using VS Code Editor

After looking for an adequate solution in the word wide web, I came to the following workaround, which I describe here. I developing in VS Code on Windows 10 and don’t want to run commit and push in the Git Bash terminal again and again, especially because VS Code comes out of the box with all of the Git skills include.

Let’s get started, if you not allready have Git for Windows on your Windows 10, you have to download here.

First open Git Bash and go to directory ~/.ssh, if it’s not exist you can create in windows explorer under the users home path, or mkdir .ssh in Git bash.

A key pair as privat and public key are generated, a passphrase you can leave but keep the key on a safe place, the command clip copies the public key to the clipboard, which will be saved to Github account in the next step.

Go to Github and sign in with your account, open profile in the upper right corner, navigate to Settings and click SSH and GPG keys, click New SSH key, paste the public key into the key field, for title you can enter your.email@domain.com.

Now ready to go back to Git bash and enter the following commands, with option -T the host is entered in known_hosts, here you have to confirm with yes, the command git push authorized on Github by use the key in ~/.ssh/id_rsa.

place instead of account your github account, and for my_project the name of your project you deploying.

Now open directory out from Git bash with VS Code.

VS Code Editor offers git commands via the main toolbar and the icon menu.

Advanced configuration

By default ssh looks for the key in a file named id_rsa, if you want to authenticate to multiple hosts, the following directive applies in the file ~/.ssh/config

Deploy Git on Linux Shell

If you use Linux „should be preferred“ then the following command lines create a Git project directory and add README.md, further Commit and Push them.

 

e-Mail senden mit cURL

cURL unterstützt das Senden von Daten an einen SMTP-Server

cURL sendet in Kombination mit Befehlszeilenoptionen eine E-Mail an einen Empfänger. Ursprünglich stand der Name für „see URL“ und wurde erst später zum aktuellen Backronym cURL umgedeutet.

Der grundlegende Befehl zum Senden einer E-Mail mit cURL.

Beispiel Anwendung von cURL SMTP im Terminal-Emulator:

Es folgt die Ausgabe im Terminal:

Durch den Parameter -v wird die verbose Ausgabe erzeugt.

Die Datei email.txt wird von cURL zum SMTP-Relay hochgeladen und versendet.

Der Inhalt von email.txt, die Zeilen From, To, Subject und Date sind Datenfelder, diese dem Simple Mail Transfer Protocol dient.

  Der Mail Transfer Agent (MTA) muss so konfiguriert sein, das Mails von dem Host akzeptiert werden, auf diesem cURL eingesetzt wird, falls es nicht selber ein MTA ist, muss eine direktive bei smtpd_sender_restrictions, b.z.w. smtpd_client_restrictions konfiguriert werden.

cURL in der Praxis Anwenden

cURL – Client for URLs Programmbibliothek und Kommandozeilen-Programm

cURL ist ein Kommandozeilentool, es ermöglicht aus Shell- oder Bash-Scrips heraus Dateien über Protokolle wie http, https, ftp, gopher, sftp, ftps oder scp zu übertragen. cURL 1997 von Daniel Stenberg entwickelt, ist bei Webseiten Entwickler sehr beliebt und steht unter der Open-Source MIT-Lizenz.

Unixoide Betriebssysteme beinhalten cURL im Standard. Bei vielen Embedded Linux Systeme ist cURL enthalten, wie auch bei Synology, ebenfalls ist cURL bereits auch für Windows portiert und steht in der 64 bit und 32 bit Version zur Verfügung. PHP unterstützt die cURL-Funktionen mit der libcrul Bibliothek.

cURL bietet vielfältige Anwendungsmöglichkeiten, so lassen sich Websites fernsteuern und testen, Formulare automatisch ausfüllen, Informationen von Webseiten abfragen und in weitere Prozesse verarbeiten. In der Linux Shell-Console ist die Installation von wget nicht zwingend erforderlich, dabei cURL umfangreiche Parameter und Optionen beinhaltet, und bereits vorinstalliert ist.

Im folgenden einige Beispiele zur Anwendung von cURL in der Shell-Console, so können Webseiten wie folgt abgerufen werden.

Damit wird die Datei seite.html gelesen und auf der Standardausgabe ausgegeben. Möchten man die Datei unter dem Namen meineseite.html speichern, dient folgender Befehl:

Verbindungen zu IPv6 Hosts werden wie folgt initialisiert.

  Die IPv6 Adresse muss in eckige Klammern eingebunden sein.

Die eigene Internet IP Adresse mit cURL anzeigen.

Wenn sich eine URL geändert hat, wird oft die Webseite auf die neue URL-Adresse umgeleitet, häufig auch http zu https Umleitungen. Da cURL in der Standard-konfiguration Weiterleitungen nicht folgt, muss man in diesem Fall den Parameter -L übergeben.

Bei Webseiten mit selbst ausgestelltem Zertifikat, oder veraltetem TLS v1.0 Verschlüsselungs-Algorithmus, muss der Parameter -k angewandt werden, um unsichere Verbindungen zu erlauben.

Wird für eine Website eine Benutzer-Authentifizierung über HTTP angefordert, lassen sich mit cURL Benutzername und Passwort übergeben, durch ein Doppelpunkt getrennt.

Den HTTP-Header mit cURL auslesen.

Mit dem Parameter –head weist man cURL an, die Ausgabe des HTTP-Header auf die Standardausgabe zu geben. Möchte man den Header in die Datei header.txt schreiben, könnte man das durch Pipe Operatoren in der Shell erreichen, oder ohne Unterstützung der Shell durch den Parameter –dump-header.

Die aktuelle Version 7.63 unterstütz folgende Protokolle: DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, Telnet and TFTP. curl supports SSL certificates, HTTP POST, HTTP PUT, FTP.

Der FTP-Client von cURL kann auch mit FTP-Server interagieren.

cURL wird angewiesen den Index des Hauptverzeichnisses auszugeben. Benutzername und Passwort werden direkt mit der URL übergeben. Möchten man das Unterverzeichnis files auf dem FTP-Server auflisten, genügt es das Verzeichnis an die URL mitzugeben:

Mit cURL ist auch ein Upload möglich, dazu übergibt man den Parameter -T gefolgt vom Dateinamen und ggf. dem Pfad.

Durch diesen Befehl kopiert cURL die Datei meineseite.html auf den FTP-Server in das Verzeichnis docs unter den Dateinamen deineseite.html.

Bevorzugt sollte man SFTP verwenden, dabei wird die datei.txt über eine verschlüsselte Verbindung abgerufen.

Der Filetransfer geht auch über SCP, hier die datei.txt aus dem Verzeichnis docs übertragen.

Für automatisierte Abläufe über Scripts ist die Benutzeranmeldung nicht geeignet, hier lässt sich mit einem Privat Key authentifizieren.

Es wird die datei.txt aus dem Home (~) Verzeichnis des Servers übertragen.

cURL kann auch zur Verwendung mit Server Message Block (SMB) genutzt werden, so für MS LAN Manager und Samba.

Zugriff auf datei.txt über die Freigabe auf einem Samba Server.

cURL kann noch mehr, durch folgende Befehlszeile wird eine Shell-Script Datei heruntergeladen und gleich ausgeführt, beginnt mit einem Punkt (.).

Dieses Kommando ist in einer Linux Bash-Shell ausführbar, Es werden Systemkonfigurationen und Protokolle ausgelesen und in einer Datei zusammengestellt, und als Datei unter /tmp/sysinfo-*.html gespeichert.

Im folgenden ein Code Beispiel für PHP, das Ergebnis der suche auf Google wird mit echo $result ausgegeben:

Ein Blick in die Man Page man curl  kann sich lohnen, hier sind alle Kommandos mit Beispiele zur Anwendung von cURL aufgeführt.

cURL Online Manual
Quellen Link: curl.haxx.se