Ankündigung

Einklappen
Keine Ankündigung bisher.

[HOW-TO] Automatischer SSH Login mit Windows ohne Putty

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [HOW-TO] Automatischer SSH Login mit Windows ohne Putty

    Hallo zusammen,

    Da einige sicherlich gerne noch Windows als ihren Hauptrechner benutzen, ich noch immer sehr oft hier im Forum lese, dass Putty für SSH empfohlen wird und ich eine für mich sehr charmante Lösung unter Windows gefunden habe, wollte ich das gerne mit euch teilen.
    Grundsätzlich ist es seit dem Windows Update 1809 möglich SSH Verbindungen aufzubauen. Leider ist das kaum bekannt, daher dieser Tipp für euch.
    Dass heißt, ihr könnt einfach das Terminal öffnen und euch mit dem Zielsystem verbinden.

    Code:
    ssh IP-DES-ZIELS
    Oder auch gleich mit dem Benutzernamen

    Code:
    ssh USERNAME@IP-DES-ZIELS
    Nun möchte ich euch noch zeigen, wie ihr euch mit dem Zielrechner ohne eine Eingabe des Passworts verbindet.
    Da wir hier im Edomi Bereich sind, habe ich die Anleitung auf CentOS gemünzt. Bei anderen Distros mag das ggf. leicht abweichen.
    Dafür bitte nicht die normale Kommandozeile sondern bitte die "Windows PowerShell" öffnen. Einfach mal unter Start danach suchen.

    Als erstes melden wir uns mit dem gewünschten User per SSH an, um ein paar Einstellungen auf dem Linux-System zu tätigen (mit "yes" bestätigen).

    Code:
    ssh USERNAME@IP-DES-ZIELS
    Wir prüfen ob der Ordner .ssh bereits vorhanden ist.

    Code:
    dir .ssh
    Falls der Ordner noch nicht vorhanden ist, erstellen wir diesen.

    Code:
    mkdir .ssh
    Jetzt prüfen wir, ob die Datei authorized_keys vorhanden ist.

    Code:
    dir .ssh/authorized_keys
    Falls diese nicht vorhanden ist, erstellen wir diese.

    Code:
    touch .ssh/authorized_keys
    Jetzt müssen wir noch einstellen, dass wir uns mit Schlüsseln (public keys) auf dem System anmelden dürfen.
    Dafür gehen wir erstmal in den root-Modus und geben das Passwort vom Benutzer ein.

    Code:
    sudo -i
    Jetzt am besten den gesamten Block kopieren, einfügen (Rechtsklick) und mit Enter bestätigen.

    Code:
    cat <<EOF >> /etc/ssh/sshd_config
    PubkeyAuthentication yes 
    PasswordAuthentication yes
    EOF
    Jetzt verlassen wir wieder den root Modus.

    Code:
    exit
    Nun setzen wir noch auf jeden Fall die richtigen Berechtigungen (bei mir kam es hier sonst zu Fehlern),

    Code:
    sudo chmod 700 .ssh
    Code:
    sudo chmod 600 .ssh/authorized_keys
    und starten den SSH Dienst neu.

    Code:
    sudo service sshd restart
    Nun können wir wieder zurück zu Windows wechseln indem wir die SSH-Verbindung beenden.

    Code:
    exit
    Im Windows generieren wir uns jetzt einen private und einen public key. Hier bitte einfach immer ohne eine Eingabe mit Enter bestätigen.

    Code:
    ssh-keygen
    Jetzt übertragen wir den public key noch auf die Linux Maschine. Dabei müssen wir noch einmal das Passwort für den Benutzer eingeben.
    Im folgenden den USERNAME durch euren Benutzer sowie IP-DES-ZIELS mit der IP oder dem Hostname ersetzen.

    Code:
    type $env:USERPROFILE\.ssh\id_rsa.pub | ssh USERNAME@IP-DES-ZIELS 'cat >> .ssh/authorized_keys'
    Jetzt können wir uns ohne Eingabe des Passworts immer an diesem Linux-Rechner anmelden

    Code:
    ssh USERNAME@IP-DES-ZIELS
    Voila!

    - OPTIONAL -

    Um das Ganze jetzt noch perfekt zu machen, möchte ich euch das neue Windows Terminal und deren Möglichkeiten aufzeigen.

    Screenshot.png

    Hier ist es möglich, bereits fertige Profile zu hinterlegen und ihr könnt mehrere Tabs öffnen und euch direkt an einer Maschine anmelden. (und auch optisch ändern, daher sieht mein Screenshot sicher etwas anders aus als bei euch)
    Dafür müssen wir dieses Terminal erstmal im Windows Store installieren. Sucht dafür im Store einfach nach "Terminal" (Windows Terminal (Preview) ).
    Jetzt legen wir uns ein SSH-Profil (quasi eine Voreinstellung) für einen Linux-Rechner an.
    Dafür erstellen wir unter folgendem Pfad eine neue Datei mit dem Namen config (ohne Endung).
    Dafür im Windows Explorer in der Adresszeile folgendes einfügen:

    Code:
    %USERPROFILE%/.ssh/
    Und dort ein neues Textdokument hinzufügen, diese "config" nennen und die Endung entfernen.
    Dort könnt ihr einen oder mehrere der folgenden Blöcke einfügen.

    Code:
    Host AmbilightPi
    Hostname 10.0.0.9
    Port 22
    User carsten
    Über Host bestimmt ihr den Namen den ihr dafür vergeben möchtet, bei Hostname könnt ihr die IP des Linux-Rechners angeben, Port 22 könnt ihr so lassen und bei Benutzer tragt ihr den Benutzer ein mit dem ihr euch anmelden möchtet.
    Speichern und schließen.

    Jetzt öffnen wir das neue Windows Terminal (Preview), klicken oben rechts auf den Pfeil und dann auf Settings.

    In der Datei fügt ihr bei den Profiles folgenden Block hinzu:

    Code:
    {
                "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6102}",
                "name": "IRGENDEIN_NAME",
                "commandline": "ssh.exe HOSTNAME",
                "hidden": false,
                "closeOnExit": true
    },
    Bei Name könnt ihr eingeben was auch immer ihr wollt. Bei HOSTNAME gebt ihr bitte das an, was ihr in der config-Datei unter "Host" angegeben habt.
    Falls ihr mehrere davon hinzufügt achtet darauf, dass die GUIDs unterschiedlich sind.
    Speichern und das war es.
    Ihr könnt jetzt im Terminal oben auf den Pfeil klicken und ihr solltet nun den Eintrag sehen, könnt diesen anwählen und seid automatisch auf dem System angemeldet.

    Für mich ist das eine super Lösung, da ich so auf mehreren Systemen gleichzeitig arbeiten kann und mich nicht mehr extra anmelden muss. Ich hoffe ich konnte euch mit meiner ersten Anleitung etwas helfen.

    Für alle Linux-Vollprofis: Ich bin keiner, seht mir daher ggf. kleine Fehler nach :-)
    Grüße
    Carsten

    [HOW-TO] Automatischer SSH Login mit Windows ohne Putty
Lädt...
X