• Startseite
  • Über mich
  • Portfolio
    • Eventmanagement
    • Technologie
      • Multitouch-Surface
      • Multitouch-Table
    • Smartphone-Apps
    • Unternehmen
    • Presse
  • Programmierung
  • Auto
  • Wirtschaftsinformatik

Patrick Hütter

Mein Blog rund um Softwareentwicklung, Online-Marketing, StartUps, Gründung, Unternehmertum, Trends and more

Schneller zum SSH-Server verbinden mit automatischem Login

6
  • by Patrick Hütter
  • in Linux · Mac · Programmierung · Shell
  • — 9 Mrz, 2012

Wer oft via SSH-Protokoll zu seinem Linux-Server verbindet weiß, gerade wenn man einen sicheren SSH Server mit nicht Standard-Port konfiguriert hat, wie mühselig immer wieder das Tippen für den Verbindungsaufbau sein kann. Anschließend muss man auch noch das Passwort eingeben. Zwei Schritte die man auch smart verkürzen kann. Das ganze funktioniert sowohl unter Linux, als auch unter Mac.

Mit ssh-keygen -t rsa generieren wir einen public und einen private key. Die Fragen die bei der Generierung gestellt werden könnten mit den Standard-Werten belassen werden. Wenn das Tool das RSA Schlüsselpaar fertig generiert hat, haben wir im jeweiligen Verzeichnis (hier im Benutzerordner unter ~/.ssh/) den private key id_rsa und den public key, der auf *.pub endet (id_rsa.pub).

mobilesystem:.ssh whitenexx$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/whitenexx/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/whitenexx/.ssh/id_rsa.
Your public key has been saved in /Users/whitenexx/.ssh/id_rsa.pub.
The key fingerprint is:
21:GE:KU:ER:ZT:df:7f:ad whitenexx@mobilesystem
The key's randomart image is:
+--[ RSA 2048]----+
|   +.            |
|  o .o           |
|.. +.+. .        |
|...o.... .       |
| =.+.o  S        |
|o o.o.           |
| o o  . .        |
|       . +       |
|       Eo        |
+-----------------+

Den public key kopiert man nun einfach via scp auf den Server (erstmal ins home-Verzeichnis des Users):

mobilesystem:.ssh whitenexx$ scp -P28 id_rsa.pub server.tld:~/

(Der Parameter -P kann weggelassen werden, wenn man den Standard-SSH-Port 22 benutzt)
Danach einfach normal via SSH zum Server verbinden und den public key den wir eben hochgeladen haben ans Ende der ~/.ssh/authorized_keys2 anhängen.
Wenn die Datei nicht existiert, kann man sie einfach davor erstellen ( touch ~/.ssh/authorized_keys2 ).

cat /home/whitenexx/id_rsa.pub >> /home/whitenexx/.ssh/authorized_keys2

Danach kann man den public key noch aus dem Home-Verzeichnis löschen und die SSH-Verbindung mit exit beenden.
Wenn man sich das nächste mal ohne Benutzername und Passwort zu dem Server verbinden will, passiert der Login vollautomatisch.
Ein

ssh server.tld -p28

reicht vollkommen und man ist sofort authentifiziert und mit dem Server verbunden. Hier kann der Port Parameter -p natürlich wieder weggelassen werden.
Es geht noch schneller

Wer es noch schneller haben möchte oder mehrere Server einfach verwalten will, kann die SSH-Verbindungsbefehle auf einfache Shell-Befehle mappen.
Wenn man z.B. einen Server hat, der „contraconfig“ heißt, wäre es doch cool wenn man durch tippen von „contraconfig“ in der Shell direkt mit diesem Server verbunden und authentifiziert wird.
Dafür kann man sich ein entsprechendes Shell-Script schreiben, dass die Verbindung aufbaut. Darin braucht man durch die Authentifizierung via Key kein Passwort hinterlegen, was für zusätzliche Sicherheit sorgt.
Dieses Shellscript kann man dann noch im PATH unter dem Namen „contraconfig“ ablegen. Nach einem Shell-Neustart steht dann der neue Befehl „contraconfig“ zur Verfügung und man kann super einfach und schnell zu diesem Server verbinden. Wenn es jemanden interessiert, kann ich auch noch beschreiben wie das genau funktioniert. 🙂 Viel Spaß beim nachbauen!

Nachtrag (10.03.2012)

Anstatt ein Shellscript zu schreiben und es in den PATH zu legen, kann man auch einfacher einfach einen Alias einrichten. Danke an dieser Stelle für den Kommentar-Hinweis von Dice!

Z.B. für die Bash (Datei $HOME/.bashrc oder /etc/bash.bashrc):

alias contraconfig='ssh username@server.tld'
Share

Tags: autologinautomatischclientpublic keyrsaschnellerServerSSHsshdverbindenverbindung

— Patrick Hütter

Patrick ist Gründer und Geschäftsführer der encircle360 GmbH. Er liebt Technologie und kennt sich sehr gut im Bereich Softwareentwicklung, u.a. auf JVM basierten Technologien wie Spring Boot, VertX, Akka, Groovy, Scala & Elasticsearch aus.

6 Comments

  1. Dice sagt:
    10. März 2012 um 13:36 Uhr

    Eleganter & rascher als mit einem Skript, kannst du die Abkürzung per Befehls-Alias einrichten.

    Z.B. für die Bash (Datei $HOME/.bashrc oder /etc/bash.bashrc):
    alias contraconfig=’ssh patrick@123.123.123.123‚

    Antworten
    • Patrick sagt:
      10. März 2012 um 16:25 Uhr

      Danke Dice! Ein alias ist natürlich wesentlich eleganter! 🙂 Habe es nachgetragen!

      Antworten
  2. quattro77 sagt:
    11. März 2012 um 17:24 Uhr

    Hallo Leutz,

    habe da mal ne frage…..Habe mir eine neue Heizung gekauft (BHKW). Das Touch Display wird mit Opensuse programiert sein. Eine Verbindung auf die Ip des Gerätes habe ich bereits. Aber wen ich z.B. auf entfernte Bildschirme gehe und die IP eingebe
    will der immer ein passwort…..das ich ja nicht habe….allerdings habe ich auch schon etwas rum probiert….so 10 std etwa…..ich komme aber immer nur soweit das ein fester kommt in dem steht das daß passwort im Ordner /home/kai/.ssh/know_hosts bereits steht……da stehe aber nur zahlen und buchstaben vielleicht auch befehle….keine ahnung….
    habe opensuse 12.1 ja nur instaliert um auf das sch…. bhkw zu kommen

    hat jemand einen rat

    Antworten
    • Patrick sagt:
      9. April 2012 um 11:07 Uhr

      Die Passwörter werden nicht in Plaintext (klar lesbar) gespeichert. Es besteht also keine Möglichkeit an das Passwort wieder ranzukommen.
      Wenn du einen SSH-User hast, solltest du beim Aufbau der Verbindung darauf achten das du dich auch mit den User einloggst username@server.tld.

      Ansonsten könntest du von außen an die Festplatte und versuchen die User zu verändern.

      Antworten
  3. Strubbl sagt:
    12. März 2012 um 0:08 Uhr

    Guck dir auch mal die Datei ~/.ssh/config an bzw leg dir die an. Da kann man alles (Hostname/IP, Port, Username, Keyfile,…) schön konfigurieren und braucht dann nur „ssh hostalias“ eintippen und landet auf dem Host.

    Antworten
    • Patrick sagt:
      9. April 2012 um 11:08 Uhr

      Auch sehr cool! Danke Strubbl! 🙂

      Antworten

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

  • Previous story Rückblick: Erfahrungen aus 11 Events für Jugendliche ab 16 Jahren oder „Wie aus einer Webseite eine Party entsteht“
  • Next story HowTo: Squid Proxy Server unter Debian schnell eingerichtet
  • Du suchst richtig gute Beratung im Bereich Software & IT?

    encircle360
  • Neueste Beiträge

    • Running headscale with headscale-admin (UI), letsencrypt & docker-compose in dual stack with IPv4 and IPv6
    • Groovy & Grails suchen einen neuen Hauptsponsor
    • Unitymedia DNS Probleme und Lösungsmöglichkeiten für Mac OS X, Windows und den eigenen Router
    • Running Grails applications on the Raspberry Pi
    • [HowTo] Build groovy project and package as jar (with all dependencies) for easy distribution with gradle
  • Neueste Kommentare

    • nototok bei Running headscale with headscale-admin (UI), letsencrypt & docker-compose in dual stack with IPv4 and IPv6
    • Muiz bei Running headscale with headscale-admin (UI), letsencrypt & docker-compose in dual stack with IPv4 and IPv6
    • John Tucker bei Running headscale with headscale-admin (UI), letsencrypt & docker-compose in dual stack with IPv4 and IPv6
    • Bastlerwastl bei HowTo: Squid Proxy Server unter Debian schnell eingerichtet
    • PatrickHuetter bei So geht’s: Macbook mit zwei externen Monitoren verbinden
  • Kategorien

    • Allgemein
    • Android
    • Code-Snippets
    • Datenbanken
    • Elektrotechnik
    • Licht
    • Linux
    • Mac
    • Messe
    • Online-Marketing
    • Programmierung
    • Projektmanagement
    • SEM
    • SEO
    • Server
    • Shell
    • Social Media
    • Web
  • Weiterführende Links

    • Price API
    • encircle360
    • sellytics
  • Impressum
  • Datenschutz

© Patrick Hütter