• Verein
  • Freifunk
  • namespace
  • Hey, Alter!
Gantry 5

Freifunk Gera-Greiz

  • Mitmachen
  • Firmware
  • Wiki
  • Karte
  • Netzwerk
  1. Aktuelle Seite:  
  2. Startseite
  3. Freifunk
  4. Wiki
  5. Anleitungen
  6. SSH

SSH mit Yubikey 4 unter Ubuntu

Kurze Anleitung wie man ganz einfach einen Yubikey 4 für SSH verwendet.

Die Anleitung zielt nicht auf absolute Sicherheit ... wer Bedenken hat sollte folgende Dinge zusätzlich machen:

  • offline Live-System verwenden und danach löschen
  • management-Key setzen
  • PINs anpassen
  • den Key auf dem Sicherungs-Datenträger zusätzlich verschlüsseln
  • Passphares beim SSH-Key
  • den Key direkt auf den Stick erstellen (keine Backup-Möglichkeit)

Pakete installieren

sudo apt-get install yubikey-personalization yubico-piv-tool opensc pcscd

SSH-Key erstellen

Stick auf PGP umstellen:

ykpersonalize -m82

Temporäres Verzeichnis für die Schlüssel:

mkdir ~/tmp_key
cd ~/tmp_key

SSH-Key generieren:

ssh-keygen -t rsa -b 2048 -f id_rsa

Den Stick mit den Schlüssel füttern:

openssl rsa -in id_rsa -out id_rsa.pem -outform pem
yubico-piv-tool -a import-key -s 9a -i id_rsa.pem
rm id_rsa.pem

Den Stick mit den Zertifikaten füttern (PIN ggf. anpassen):

ssh-keygen -e -f id_rsa.pub -m PKCS8 > id_rsa.pub.pkcs8
yubico-piv-tool -a verify -P 123456 -a selfsign-certificate -s 9a -S "/CN=joe/O=Test/" -i id_rsa.pub.pkcs8 -o 9a-cert.pem
yubico-piv-tool -a verify -P 123456 -a import-certificate -s 9a -i 9a-cert.pem

Schauen ob alles geklappt hat:

yubico-piv-tool -a status

Die Datei "id_rsa.pub" können wir behalten, diese brauchen wir später noch.Die Dateien "id_rsa" und "id_rsa.pub" am besten auf einer Speicherkarte oder Stick speichern und sicher verwahren.Das löschen des Verzeichnis "tmp_key" auf den PC nicht vergessen:

rm -rf ~/tmp_key

SSH-Key erstellen für Paranoide

Diese Variante bietet kein Backup vom Key!

Stick auf PGP umstellen:

ykpersonalize -m82

Temporäres Verzeichnis für die Schlüssel:

mkdir ~/tmp_key
cd ~/tmp_key

Schlüssel direkt auf den Stick erstellen:

yubico-piv-tool -a generate --touch-policy=always -s 9a -o public.pem

Den Stick mit den Zertifikaten füttern (PIN ggf. anpassen):

yubico-piv-tool -a verify-pin -P 123456 -a selfsign-certificate -s 9a -S "/CN=SSH key/" -i public.pem -o cert.pem
yubico-piv-tool -a import-certificate -s 9a -i cert.pem

Den Public-Key generieren:

export OPENSC=$(dpkg -L opensc-pkcs11 | grep \\/opensc-pkcs11.so\\$ | head -n1 )
ssh-keygen -D $OPENSC -e

SSH-Key Anwenden

SSH-Key auf den Zielsystem installieren:

ssh-copy-id -i id_rsa.pub holy_moly_server.de

SSH-Agent starten und den Stick als Quelle angeben:

export OPENSC=$(dpkg -L opensc-pkcs11 | grep \\/opensc-pkcs11.so\\$ | head -n1 )
eval `ssh-agent -s`
ssh-add -s $OPENSC

Zum Zielsystem mit den Stick verbinden:

ssh -A holy_moly_server.de

Quellen

https://wikitech.wikimedia.org/wiki/Yubikey-SSH

http://blog.rchapman.org/posts/Import_an_existing_ssh_key_into_Yubikey_NEO_applet/

Details
Geschrieben von: Marcus
Kategorie: SSH
Veröffentlicht: 23. November 2021
Zuletzt aktualisiert: 02. April 2017

SSH mit sudo unter Debian

Server

libpam: ab Debian 9

sudo apt-get install libpam-ssh-agent-auth

libpam: ältere Debian-Versionen

Aktuelle Version herunter laden: https://sourceforge.net/projects/pamsshagentauth/

sudo apt-get install libpam0g-dev libssl-dev
tar -xf pam_ssh_agent_auth-0.10.3.tar.bz2
cd pam_ssh_agent_auth-0.10.3
./configure --libexecdir=/lib/security --with-mantype=man
make
sudo make install

Konfiguration

/etc/sudoers:

Defaults        env_keep += SSH_AUTH_SOCK

/etc/pam.d/sudo:

#auth sufficient pam_ssh_agent_auth.so file=~/.ssh/authorized_keys
auth sufficient pam_ssh_agent_auth.so file=/etc/ssh/sudo_authorized_keys
{{{ sudo cp ~/.ssh/authorized_keys /etc/ssh/sudo_authorized_keys sudo chown root:root /etc/ssh/sudo_authorized_keys }}}

Client

{{{ eval `ssh-agent -s` ssh-add ~/.ssh/my_damn_key/id_rsa ssh -A holy_moly_server.de sudo ls }}}
Details
Geschrieben von: Marcus
Kategorie: SSH
Veröffentlicht: 23. November 2021
Zuletzt aktualisiert: 12. Dezember 2017

SSH mit RSA-Schlüssel unter OSX

In dieser Anleitung wird beschrieben, wie du ein Schlüsselpaar unter Mac OSX erstellst, was geeignet ist um SSH Zugang zu deinem Router zu bekommen. OSX bringt alle Bordmittel mit um dies zu bewerkstelligen, du brauchst also nichts zusätzlich installieren.

Kurzer Hinweis vornan

Du erzeugst mit dieser Anleitung einen öffentlichem und einen privaten RSA-Schlüssel. Der öffentliche Schlüssel kann verbreitet werden, wie beispielsweise auf deinem Freifunk-Router hinterlegt werden. Der private Schlüssel sollte geheim bleiben und nicht weiterverbreitet werden. Dieser Schlüssel sollte deshalb nicht bei online-Diensten hinterlegt werden oder über diese auf andere Geräte synchronisiert werden - Es ist dein persönliches Ausweisdokument. Beide Schlüssel bilden ein Schlüsselpaar.

Generierung des Schlüsselpaars

Zur Generierung des Schlüsselpaars benötigst du wie bereits beschrieben keine weitere Software, das Mac OSX die benötigten Komponenten bereits mitbringt. Das Terminal wird im kommenden für alles ausreichen. Starte dieses indem du Die Taste CMD+Leertaste drückst. Es erscheint die Spotlight-Suche. Gib in dieses Overlay Terminal ein und bestätige mit der Eingabetaste. Das Programm Terminal öffnet sich.

Wechsel nun als erstes in das Verzeichnis, in dem standardmäßig die persönlichen SSH-Dateien liegen. dies ist das versteckte Verzeichnis .ssh in deinem persönlichen Ordner. Gib dazu im Terminal folgenden Befehl ein:

cd ~/.ssh

Sollte der Verzeichniswechsel fehlschlagen, ist das Verzeichnis noch nicht existent und du musst es erst anlegen. Sollte das der Fall ein lege das Verzeichnis mit dem Befehl mkdir ~/.ssh an. 

im Verzeichnis .ssh angekommen kannst du nun bereits den Schlüssel anlegen. Gib dazu in das Terminalfenster folgenden Befehl ein:

ssh-keygen -t rsa -b 8192

Es wird damit ein Schlüssel generiert (ssh-keygen), der den Typ RSA hat (-t rsa) und die Länge 8192 Bit besitzt (-b 8192).

Du wirst nun gefragt, wie das generierte Schlüsselpaar heißen soll und wie das Passwort für den Schlüssel sein soll. Bitte gib beides an. 

Ist der Vorgang abgeschlossen kannst du in dein Terminalfenster ls -a eingeben und du wirst sehen, dass nun zwei Dateien dort zu finden sind, die den eben eingegebenen Namen tragen - das ist dein Schlüsselpaar. Einer der beiden Schlüssel trägt die Endung .pub, was dein öffentlicher Schlüssel ist, der im Router hinterlegt werden kann, der andere ist dein privater Schlüssel, der mit dem oben angegebenen Passwort geschützt ist. Fertig

Weiterarbeit mit dem Schlüssel

Den Inhalt des öffentlichen Schlüssels kannst du sehen indem du cat deinschluesselname.pub eingibst. Das Ergebnis sollte folgender Form folgen:

ssh-rsa LaNgEZeiCHEenKetteAuskleinenundGROSSENBuchStabENUndZahLEn2237682t43== IrgendeinNameDerDeinenComputerBeschreibt

Diese gesamte Zeichenkette kannst du nun im Router hinterlegen und hast damit einen SSH-Zugang zu diesem eingerichtet. Dazu setzt du deinen Router in den Konfigurationsmodus indem du die Reset-Taste ein paar Sekunden lang gedrückt hältst. Der Router startet damit neu und direkt in den Konfigurationsmodus. Verbinde deinen Mac über Ethernet (Netzwerkkabel) mit (einer) der LAN-Buchse(n) des Routers.

Gib nun im Browser die Adresse 192.168.1.1 ein. Nun öffnet sich die Konfigurationsoberfläche des Routers und du klickst oben rechts auf 'Expert Mode' und dann wählst du dort 'Remote Access' bzw. 'Remotezugriff' aus.

Konfigurationsoberfläche

Jetzt kannst du den oben angezeigten öffentlichen Schlüssel in der Liste der SSH-Schlüssel in einer neuen Zeile ergänzen.

SSH-Schlüssel hinzufügen

Bestätige nun mit 'Submit' bzw. 'Absenden', wechsele in der obigen freifunkmagentafarbenen Leiste in 'Wizard' und starte das Gerät neu.

Sehr einfach erreichst du nun deinen Router indem du eine SSH-Config anlegst - das wird dir das Leben deutlich erleichtern. Wie du diese ähnlich schnell wie den Schlüssel anlegst zeigt dir die Anleitung zum Anlegen einer SSH-Config unter OSX in unserem Wiki. Weil du schonmal im .ssh-Ordner bist, das so schnell geht und so nützlich ist, wird an dieser Stelle auch nicht darauf eingegangen, wie du den Router ohne SSH-Config erreichen kannst. Leg dir diese Config einfach an, spare Schreibarbeit und werde glücklich damit.

Details
Geschrieben von: Eric
Kategorie: SSH
Veröffentlicht: 23. November 2021
Zuletzt aktualisiert: 03. Juni 2016

SSH-Konfigurationsdatei unter OSX

Im Folgenden werde ich dir in einer kurzen Einführung zeigen, wie man eine ssh-Konfiguration anlegt. Mit dieser ist es anschließend über kurze Befehle möglich sich auf seinem Freifunk-Knoten anzumelden. Voraussetzung dieser Anleitung ist, dass du deinen Router zu einem Freifunk-Router aufgewertet hast und dort deinen öffentlichen SSH-Schlüssel bereits hinterlegt hast. Entsprechend hast du also auch schon ein Public-Privat-Schlüsselpaar generiert, welches du benutzt.

Die Schlüssel- und Konfigurationsorte

Unter OSX ist das Standardverzeichnis in dem die ssh-Schlüssel aufbewahrt werden das versteckte Verzeichnis .ssh im Homeverzeichnis. Du kannst dieses im Finder erreichen indem du Shift + cmd + G drückst und in das Popup-Fenster ~~/.ssh einträgst und bestätigst. Du siehst in diesem Ordner nun deinen öffentlichen und privaten Schlüssel. In meinem Fall habe ich meinen öffentlichen Schlüssel mit der Endung .pub versehen, der Privatschlüssel hat keine Dateiendung

Möglicherweise befindet sich dort eine Datei namens config, falls nicht lege diese bitte an. Am einfachsten geht das mit dem Terminal-Programm deiner Wahl (bspw. Terminal oder iTerm). Öffne dieses und gebe folgende Zeile ein:

cd ~/.ssh
touch config

Damit ist die config-Datei angelegt und kann nun mit Inhalt gefüllt werden. Ein Eintrag in der Config kann aus vielen Einzelteilen bestehen.

Inhalte der SSH-Config

In meinem einfachen Beispiel gebe ich dem Eintrag lediglich  

  • Eine Kommentarzeile (beginnend mit #) in der der Knoten näher beschrieben wird. Diese ist besonders hilfreich, wenn sich die Einträge häufen.
  • Einen kurzen eindeutigen Namen, den man später aufrufen kann (beginnend mit Host)
  • Einen Nutzernamen mit dem man sich am Knoten anmeldet (User)
  • Der Adresse unter dem ich den Knoten erreichen kann (hier HostName mit der freifunk-internen IPv6-Adresse, Die Adresse eines Knotens kannst du auf unserer Karte nachsehen. Wählt man einen Knoten aus und nimmt man entweder die freifunkinterne Adresse, welche mit fdb5 beginnt oder die externe, die mit 2a03 beginnt) 
  • Dem Port, der per default auf 22 ist und
  • Dem Ort des privaten Schlüssels (IdentityFile)

Also öffne die die config File und trage die folgenden Zeilen (aber mit deinem eigenen Host, HostName und IdentityFile) ein. Gib dazu folgende Zeile in dein Terminal-Programm ein:

vi config

Nun kannst du durch drücken der Taste i in den Editiermodus wechseln und deine angepassten Zeilen einfügen. Achte darauf, dass die Einrückungen ab Zeile 3 erhalten bleiben.

# Freifunk-Node m4r10-refugee-support
Host ffrs
    User root
    HostName fdb5:78b:64cc:0:e695:6eff:fe40:85b3
    Port 22
    IdentityFile ~/.ssh/private-key-to-identify

Mit :wq und anschließender Bestätigung wird die Datei gespeichert und geschlossen. Du befindest dich wieder im Terminalfenster. 

Nutzung im Terminal

Nun sind die Eingaben bereits nutzbar. Du kannst deinen Knoten ab sofort nicht nur unter deiner bisherigen Langfassung aufrufen, sondern auch unter dem kurzen Aufruf. Im Beispiel ist der Aufruf des Knotens über den Befehl ssh gefolgt vom Host möglich:

ssh ffrs

Der Befehl ist ab jetzt in jedem Terminal-Programm verfügbar. Solltest du also mal dein Terminal aus irgendeinem Grund wechseln wollen oder müssen, brauchst du die Prozedur nicht noch einmal durchführen, sondern kannst die kurzaufrufe weiterhin nutzen.

Wenn das noch nicht reicht

Natürlich hören die Möglichkeiten der ssh-Config hier noch lange nicht auf. Du kannst noch viel mehr damit tun. Informiere dich darüber doch einfach auf deinem eigenen Mac oder Linux-Rechner, denn alles was du brauchst ist bereits mit an Bord - so auch die man-Page. Gib dazu einfach in dein Terminalfenster ein:

man ssh_config

Viel Spaß mit den Möglichkeiten.

Details
Geschrieben von: Eric
Kategorie: SSH
Veröffentlicht: 23. November 2021
Zuletzt aktualisiert: 03. Juni 2016

SSH mit RSA-Schlüssel unter Windows

Einleitung

In dieser Anleitung wird Folgendes beschrieben:

  • RSA-Key unter Windows erstellen,
  • RSA-Key auf dem Freifunk-Router hinterlegen
  • Verbindung zum Router unter Verwendung des RSA-Key

Grundlegende Kenntnisse über den Aufbau einer Verbindung zu einem SSH-Server über den SSH-Client Putty werden vorausgesetzt und an dieser Stelle nicht erörtert.

Ferner muss an dieser Stelle nach öffentlichem und privatem RSA-Schlüssel unterschieden werden. Der öffentliche Schlüssel kann verbreitet werden und gleicht einer Visitenkarte die an andere Leute verteilt wird. Der private Schlüssel sollte geheim bleiben und nicht weiterverbreitet werden.  Er gleicht einem Ausweisdokument welches zur Visitenkarte passt. Beide Schlüssel bilden ein Schlüsselpaar.

Vorarbeiten

Für Erstellung der Schlüssel und Verbindung mit dem SSH-Server werden folgende Programme benötigt:

  • PuTTY - als SSH-Client
  • PuTTYgen - zum Erzeugen der Schlüssel
  • Pageant - zum automatischen Authentifizieren am SSH-Server

Diese Programme können unter folgendem Link einzeln oder im Komplettpaket heruntergeladen werden:

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Anschließend bitte alle Anwendungen in den gleichen Ordner legen.

Schritt 1 - RSA-Schlüssel erstellen

Dazu wird das Programm PuTTYgen gestartet.

Die Standardeinstellungen "SSH-2 RSA" und "2048 bits" sind für uns gut geeignet.

Über den Button "Generate" wird ein Schlüsselpaar erzeugt. Das Programm wartet nun auf ein paar Mausbewegungen um eine gewisse Entropie zu erzeugen. Anschließend sollte der öffentliche RSA-Schlüssel bereits angezeigt werden.

In der großen Textbox steht bereits der öffentliche Schlüssel welcher später auf dem Freifunk-Router hinterlegt werden muss, daher kann dieser bereits vollständig markiert und in die Zwischenablage kopiert werden.

Im Feld "Key passphrase" sollte ein Kennwort hinterlegt werden welches bei der Verwendung des privaten Schlüssels abgefragt wird. Die Eingabe ist im nächsten Feld zu wiederholen.

Über die Schaltflächen "Save public key" & "Save private key" werden der öffentliche und der private RSA-Schlüssel für die spätere Verwendung exportiert. Beim Export des privaten Schlüssels ohne hinterlegtes Kennwort wird ein entsprechender Hinweis angezeigt.

Ferner kann bei Bedarf ein Schlüsselkommentar angegeben werden. Als Voreinstellung wird Schlüsseltyp und Generierungsdatum hinterlegt. Ein anderer Ansatz ist die Angabe wer den Schlüssel auf welchem System verwendet - "Max@Max-PC" als Beispiel.

Für unseren Fall ist es ausreichend den privaten Schlüssel über die entsprechende Schaltfläche zu speichern.

Schritt 2 - öffentlichen RSA-Schlüssel auf dem Router hinterlegen

Der öffentliche Schlüssel ist bereits in der Zwischenablage. Nun sollte die Config-Seite des Routers aufgerufen werden auf dem der eben erzeugte öffentliche Schlüssel hinterlegt werden soll. Den Config-Modus erreicht man durch 5s langes Drücken des WPS/Reset-Knopfes am Router. Dieser startet neu und ist anschließend über die Adresse http://192.168.1.1 im Browser erreichbar - vorausgesetzt der Router ist über ein Netzwerkkabel mit dem PC verbunden.

Über "Expert Mode" --> "Remotezugriff" kann der öffentliche SSH-Schlüssel aus der Zwischenablage in eine separate Zeile eingefügt werden. Unter Umständen ist dort bereits ein Schlüssel hinterlegt. Über "Absenden" wird die Änderung im Router gespeichert.

Sollte der öffentliche Schlüssel an dieser Stelle nicht mehr in der Zwischenablage sein, so kann über das bereits verwendete Tool PuTTYgen die gespeicherte Schlüsseldatei "Privater-Schlüssel.ppk" geöffnet und der öffentliche RSA-Schlüssel wieder angezeigt werden.

Nun den Router kurz vom Stromnetz trennen um ihn wieder im normalen Modus zu starten.

Schritt 3 - Verbindung zum Router unter Verwendung des RSA-Key

Für den erfolgreichen Aufbau einer SSH-Verbindung zum entsprechenden Router sind 3 Dinge Voraussetzung:

  • Die IP-Adresse des Routers
  • Die Schlüsseldatei "Privater-Schlüssel.ppk"
  • Der SSH-Benutzername des Routers

Ersteres lässt sich über den Meshviewer auf der Freifunkseite herausfinden. Unter https://www.freifunk-gera-greiz.de/meshviewer/ den eigenen Knoten suchen und in den Knotendetails die verlinkte IPv6-Adresse des Routers notieren.

Sofern man als Client mit dem betroffenen Router verbunden ist kann die IP auch über die URL http://nextnode.ffggrz angezeigt werden.

Hier ist die IP-Adresse gelistet. Dabei kann die mit "fe80:" beginnende Adresse ignoriert werden.

Anschließend wird die Anwendung PuTTY gestartet.

Im Feld "Hostname" wird die ermittelte IP hinterlegt und darauf geachtet, dass als Verbindungstyp "SSH" ausgewählt ist.

Auf der linken Seite unter "Connection" --> "Data" den SSH-Benutzername hinterlegen. Alternativ dazu kann im vorherigen Schritt der Hostname um den gewünschten Benutzernamen ergänzt werden - einfach die IP-Adresse des Routers im folgenden Format unter "Session" im Feld "Hostname" eingeben:

"root@fdb5:78b:64cc:0:32b5:c2ff:fe87:9ea8"

Anschließend unter "Connection" > "SSH" > "Auth" die private Schlüsseldatei "Privater-Schlüssel.ppk" hinterlegen.

Beim anschließenden Aufbau der Verbindung über die Schaltfläche "Open" wird das beim Export hinterlegte Zertifikatskennwort abgefragt.

Nach der Eingabe sollte die Begrüßungsseite des Routers angezeigt werden. Die Zeile "root@RC-Krummer-Weg-001c" gibt an, dass als Benutzer "root" auf den richtigen Router verbunden wurde.

Details
Geschrieben von: Eric
Kategorie: SSH
Veröffentlicht: 23. November 2021
Zuletzt aktualisiert: 03. Juni 2016
RSS

Freifunk Community Feeds

  • ffradio107: Total übersteuert
    29. März 2023
  • Freifunk-Treffen am 13. März 2023 – vor Ort und virtuell
    12. März 2023
  • Firmware Update 2022.1.3.0
    10. März 2023
  • Transparenter Proxy trifft VPN trifft SSH
    09. März 2023
  • Netzmodernisierung
    09. März 2023
  • WireGuard auf OpenWrt
    09. März 2023
  • Mitgliederversammlung 2023
    08. März 2023
  • Neue Beta 0.16.4 bringt Bugfixes
    07. März 2023
  • Neue Firmware
    02. März 2023
  • Einladung zur Mitgliederversammlung des Freifunk Mainz e.V. am Donnerstag, 23.03.2023 (19 Uhr)
    01. März 2023

Veranstaltungen / Ereignisse

Mi März 29 @18:00 - 22:00
namespace geöffnet
Mi Apr. 05 @18:00 - 22:00
namespace geöffnet
  • Willkommen
  • Impressum
  • Kontakt
© 2023 Bürgernetz Gera-Greiz e.V.