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

Freifunk Gera-Greiz

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

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

Parallele Änderungen auf mehreren Nodes (OSX)

Wolltest du schon immer mal auf mehreren deiner Nodes gleichzeitig die identischen Änderungen vornehmen? In dieser kurzen Anleitung zeige ich dir, wie du unter MacOSX mit ssh-Zugang genau diese Aufgabe erledigen kannst. Ich nutze dazuals Terminal-Emulator die kostenfreie OpenSource-Software iTerm2.

Voraussetzung ist, dass du deine Router erfolgreich zu einem Freifunk-Knoten aufgewertet und zudem einen persönlichen ssh-Zugang eingerichtet hast. Ich selbst habe lokal auf meinem Mac eine ssh-config angelegt, was mir die Routeranmeldung vereinfacht, aber grundsätzlich ist das nur die Kür. Zudem habe ich iTerm2 installiert.

Doch nun fangen wir an. Ich führe am Beispiel meiner Heim-Router durch die Anleitung.

iTerm2 starten

Starte iTerm indem du cmd + Leertaste drückst und 'iterm' eingibst (oder iTerm auf eine dir gewählte Art startest. Es erscheint ein iTerm-Fenster.

 

Auf den Knoten mit ssh anmelden

Starte die erste ssh-Session. Ich gebe dazu ssh ffbase ins das iTerm-Fenster ein. (Entsprechend deiner ssh-Konfiguration wird deine Anmeldung einen anderen Befehl erfordern) Nun bin ich an einem Router angemeldet.

 

 

 

Nun kann durch cmd + D bzw. cmd + Shift + D das Fenster vertikal und horizontal geteilt werden.

 

 

In meinem Fall habe ich 3 Router, teile also einmal horizontal, einmal vertikal und erhalte folgende Darstellung

 

 

Nun kann ich in jedem der geteilten Fenster mich auf einen anderen Router mit ssh verbinden. In folgendem Bild sieht man 3 verschiedene Anmeldungen, den aktiven Bereich erkennt man am dunklem Fensterteil (die inaktiven sind blass).

 

 

Die iTerm-Unterfenster synchronisieren

Mit der Tastenkombination alt + cmd + I kann ich Tastatureingaben auf alle geteilten Fensterabschnitte, die ich gerade angelegt habe beziehen.

 

 

Die Änderung erkennt man daran, dass alle Fensterteile nun dunkel sind bzw. keiner mehr blass dargestellt ist.

 

 

Los gehts im Parallelmodus

Nun kann ich parallel Eingaben durchführen. Ich führe hier beisielhaft die Eingabe der Kontaktadresse durch und schauen nach, wie die node-infos sind.

 

 

Nun können weitere Befehle eingegeben werden oder mit exit die sessions beendet werden. Nun nicht vergessen mit alt + Shift + cmd + I die Fensterteile wieder eigenständig bedienbar zu machen und die Fenster zu schließen. 

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

Seite 1 von 2

  • 1
  • 2
RSS

Freifunk Community Feeds

  • Tschüss Twitter
    06. Februar 2023
  • Großes Firmware Update aktiviert den OWE Transiton Mode
    01. Februar 2023
  • VPN Abschaltung – Firmware-Update notwendig
    26. Januar 2023
  • Mitgliederversammlung 2023
    19. Januar 2023
  • Wie es 2023 weiter geht
    17. Januar 2023
  • Förderverein Freie Infrastruktur hält Mitgliederversammlung ab
    11. Januar 2023
  • Kursänderung
    11. Januar 2023
  • Firewall/DMZ + Freifunkrouter
    10. Januar 2023
  • Wöchentlicher Beratungstisch – Online
    10. Januar 2023
  • Freifunk-Treffen am 09. Januar 2023 – vor Ort und virtuell
    08. Januar 2023

Veranstaltungen / Ereignisse

Mi Feb. 15 @18:00 - 22:00
<name>space geöffnet
  • Willkommen
  • Impressum
  • Kontakt
© 2023 Bürgernetz Gera-Greiz e.V.