Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
nitrokey:linuxmint:3cnfc [21.07.2023 19:16. ] – [Öffentlichen Schlüssel importieren] djangonitrokey:linuxmint:3cnfc [23.07.2023 18:27. ] (aktuell) django
Zeile 1: Zeile 1:
-====== Nitrokey 3C NFC in der Praxis unter Linux Mint 21.(Vera) ====== +====== Nitrokey 3C NFC und Nitrokey 3A mini in der Praxis unter Linux Mint 21.(Victoria) ====== 
-{{:nitrokey:linuxmint:nitrokey_3c_nfc.png?nolink&280 |Bild: Nitrokey 3C NFC USB-Stick}} In diesem Kapitel befassen wir uns eingehend mit dem [[https://shop.nitrokey.com/de_DE/shop/product/nk3cn-nitrokey-3c-nfc-148|Nitrokey 3C NFC]] unter **[[https://linuxmint.com/|Linux Mint 20.2 Cinnamon]]**. Weitere Informationen zu den [[https://www.nitrokey.com/de#comparison|Nitrokey-Sticks]] findet man auch [[https://www.nitrokey.com/de/documentation/installation|hier]] bzw. im [[https://support.nitrokey.com/c/nitrokey-support|Support Forum]].+{{:nitrokey:linuxmint:nitrokey_3.png?300 |Bild: Nitrokey 3C NFC und 3A mini USB-Stick}} In diesem Kapitel befassen wir uns eingehend mit dem [[https://shop.nitrokey.com/de_DE/shop/product/nk3cn-nitrokey-3c-nfc-148|Nitrokey 3C NFC]] und [[https://shop.nitrokey.com/de_DE/shop/product/nk3am-nitrokey-3a-mini-149|Nitrokey 3A mini]] unter **[[https://linuxmint.com/|Linux Mint 21.2 (Victoria)]]**. Weitere Informationen zu den [[https://www.nitrokey.com/de#comparison|Nitrokey-Sticks]] findet man auch [[https://www.nitrokey.com/de/documentation/installation|hier]] bzw. im [[https://support.nitrokey.com/c/nitrokey-support|Support Forum]].
  
-//**Der neue Nitrokey 3 mit NFC, USB-CRust, Common Criteria EAL 6+**+//**Der neue Nitrokey 3 wahlweise mit mit NFC, USB-C oder USB-A Mini sowie Rust, Common Criteria EAL 6+**
 \\ \\
 Der neue Nitrokey 3 ist der beste Nitrokey den wir je entwickelt haben. Er bietet erstmals NFC, USB-C. Der Nitrokey 3 vereint die Funktionen vorheriger Nitrokey Modelle: FIDO2, Einmalpasswörter, OpenPGP Chipkarte, Curve25519, Passwort-Manager, Common Criteria EAL 6+ zertifiziertes Secure Element, Firmware-Updates. Damit werden Ihre Accounts zuverlässig gegen Phishing und Passwort-Diebstahl geschützt und Ihre Kommunikation und Daten verschlüsselt. Mit starker Hardware-Verschlüsselung, vertrauenswürdig dank Open Source, Qualität made in Germany.// <sup>\\ Quelle: https://shop.nitrokey.com/de_DE/shop/product/nk3cn-nitrokey-3c-nfc-148</sup> Der neue Nitrokey 3 ist der beste Nitrokey den wir je entwickelt haben. Er bietet erstmals NFC, USB-C. Der Nitrokey 3 vereint die Funktionen vorheriger Nitrokey Modelle: FIDO2, Einmalpasswörter, OpenPGP Chipkarte, Curve25519, Passwort-Manager, Common Criteria EAL 6+ zertifiziertes Secure Element, Firmware-Updates. Damit werden Ihre Accounts zuverlässig gegen Phishing und Passwort-Diebstahl geschützt und Ihre Kommunikation und Daten verschlüsselt. Mit starker Hardware-Verschlüsselung, vertrauenswürdig dank Open Source, Qualität made in Germany.// <sup>\\ Quelle: https://shop.nitrokey.com/de_DE/shop/product/nk3cn-nitrokey-3c-nfc-148</sup>
  
-Mit Hilfe von asymmetrischen Schlüsselmaterials (PGP und S/MIME) können eMails sowie Dateien und ganze Festplatten verschlüsselt und natürlich auch wieder entschlüsselt werden. Hierzu verwenden wir den [[https://shop.nitrokey.com/de_DE/shop/product/nk3cn-nitrokey-3c-nfc-148|Nitrokey 3C NFC]] welcher [[https://shop.nitrokey.com/de_DE/shop|hier]] für einen Betrag von 49 € erstanden werden kann. In dem folgenden Beitrag gehen wir auf die Verwendung unter [[https://linuxmint.com/|Linux Mint 21.1 Cinnamon]] ein. +Mit Hilfe von asymmetrischen Schlüsselmaterials (PGP und S/MIME) können eMails sowie Dateien und ganze Festplatten verschlüsselt und natürlich auch wieder entschlüsselt werden. Hierzu verwenden wir den [[https://shop.nitrokey.com/de_DE/shop/product/nk3cn-nitrokey-3c-nfc-148|Nitrokey 3C NFC]] welcher [[https://shop.nitrokey.com/de_DE/shop|hier]] für einen Betrag von 49 € erstanden werden kann. In dem folgenden Beitrag gehen wir auf die Verwendung unter [[https://linuxmint.com/|Linux Mint 21.2 (Victoria)]] ein. 
  
  
Zeile 29: Zeile 29:
 I:  If#= 3 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_acm I:  If#= 3 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_acm
 E:  Ad=04(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms E:  Ad=04(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
 +E:  Ad=84(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
 +</code>
 +
 +Beziehungsweise hier exeplarisch die Ausgabe beim **Nitrokey 3A mini**:
 +<code>T:  Bus=01 Lev=02 Prnt=02 Port=01 Cnt=01 Dev#= 26 Spd=12  MxCh= 0
 +D:  Ver= 2.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
 +P:  Vendor=20a0 ProdID=42b2 Rev=01.05
 +S:  Manufacturer=Nitrokey
 +S:  Product=Nitrokey 3
 +C:  #Ifs= 4 Cfg#= 1 Atr=80 MxPwr=100mA
 +I:  If#= 0 Alt= 0 #EPs= 2 Cls=0b(scard) Sub=00 Prot=00 Driver=usbfs
 +E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
 +E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
 +I:  If#= 1 Alt= 0 #EPs= 2 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid
 +E:  Ad=02(O) Atr=03(Int.) MxPS=  64 Ivl=5ms
 +E:  Ad=82(I) Atr=03(Int.) MxPS=  64 Ivl=5ms
 +I:  If#= 2 Alt= 0 #EPs= 1 Cls=02(commc) Sub=02 Prot=00 Driver=cdc_acm
 +E:  Ad=83(I) Atr=03(Int.) MxPS=   8 Ivl=255ms
 +I:  If#= 3 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_acm
 +E:  Ad=03(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
 E:  Ad=84(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms E:  Ad=84(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
 </code> </code>
Zeile 42: Zeile 62:
    # lsusb    # lsusb
  
-  Bus 001 Device 005: ID 20a0:42b2 Clay Logic+  Bus 001 Device 027: ID 20a0:42b2 Clay Logic Nitrokey 
  
 Im Syslog wird uns beim Anstecken des Sticks dies entsprechend protokolliert: Im Syslog wird uns beim Anstecken des Sticks dies entsprechend protokolliert:
-<code>Nov  3 17:34:33 djangos-thinkpad-x230 kernel: [108360.162781] thinkpad_acpi: battery 1 registered (start 0, stop 0) +<code>Jul 22 11:43:25 djangos-thinkpad-x230 kernel: [26709.462049] usb 1-1.2: new full-speed USB device number 28 using ehci-pci 
-Nov  3 17:34:33 djangos-thinkpad-x230 kernel: [113260.203649] usb 1-1.2: new full-speed USB device number using ehci-pci +Jul 22 11:43:25 djangos-thinkpad-x230 kernel: [26709.574335] usb 1-1.2: New USB device found, idVendor=20a0, idProduct=42b2, bcdDevice= 1.05 
-Nov  3 17:34:33 djangos-thinkpad-x230 kernel: [113260.314951] usb 1-1.2: New USB device found, idVendor=20a0, idProduct=42b2, bcdDevice= 1.00 +Jul 22 11:43:25 djangos-thinkpad-x230 kernel: [26709.574348] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 
-Nov  3 17:34:33 djangos-thinkpad-x230 kernel: [113260.314956] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 +Jul 22 11:43:25 djangos-thinkpad-x230 kernel: [26709.574353] usb 1-1.2: Product: Nitrokey 3 
-Nov  3 17:34:33 djangos-thinkpad-x230 kernel: [113260.314958] usb 1-1.2: Product: Nitrokey 3 +Jul 22 11:43:25 djangos-thinkpad-x230 kernel: [26709.574356] usb 1-1.2: Manufacturer: Nitrokey 
-Nov  3 17:34:33 djangos-thinkpad-x230 kernel: [113260.314961] usb 1-1.2: Manufacturer: Nitrokey +Jul 22 11:43:25 djangos-thinkpad-x230 kernel: [26709.577711] hid-generic 0003:20A0:42B2.0014hiddev0,hidraw0: USB HID v1.11 Device [Nitrokey Nitrokey 3] on usb-0000:00:1a.0-1.2/input1 
-Nov  3 17:34:33 djangos-thinkpad-x230 kernel: [113260.316882] hid-generic 0003:20A0:42B2.0015hiddev3,hidraw0: USB HID v1.11 Device [Nitrokey Nitrokey 3] on usb-0000:00:1a.0-1.2/input1 +Jul 22 11:43:25 djangos-thinkpad-x230 kernel: [26709.578121] cdc_acm 1-1.2:1.2: ttyACM3: USB ACM device 
-Nov  3 17:34:33 djangos-thinkpad-x230 kernel: [113260.317184] cdc_acm 1-1.2:1.2: ttyACM3: USB ACM device +Jul 22 11:43:25 djangos-thinkpad-x230 mtp-probe: checking bus 1, device 28: "/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2" 
-Nov  3 17:34:33 djangos-thinkpad-x230 mtp-probe: checking bus 1, device 5: "/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2" +Jul 22 11:43:25 djangos-thinkpad-x230 mtp-probe: bus: 1, device: 28 was not an MTP device 
-Nov  3 17:34:33 djangos-thinkpad-x230 mtp-probe: bus: 1, device: was not an MTP device +Jul 22 11:43:25 djangos-thinkpad-x230 snapd[999]: hotplug.go:200: hotplug device add event ignored, enable experimental.hotplug 
-Nov  3 17:34:33 djangos-thinkpad-x230 snapd[1106]: hotplug.go:199: hotplug device add event ignored, enable experimental.hotplug +Jul 22 11:43:25 djangos-thinkpad-x230 mtp-probe: checking bus 1, device 28: "/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2" 
-Nov  3 17:34:33 djangos-thinkpad-x230 mtp-probe: checking bus 1, device 5: "/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2" +Jul 22 11:43:25 djangos-thinkpad-x230 mtp-probe: bus: 1, device: 28 was not an MTP device</code>
-Nov  3 17:34:33 djangos-thinkpad-x230 mtp-probe: bus: 1, device: was not an MTP device</code>+
  
 ===== Paketabhängigkeiten ===== ===== Paketabhängigkeiten =====
Zeile 66: Zeile 85:
  
 ===== udev-Regeln ===== ===== udev-Regeln =====
-Für den Betrieb unter **[[https://linuxmint.com/|Linux Mint 21.1]]** insbesondere beim **[[nitrokey:nitropadx230|NitroPad X230]]** müssen wir uns noch passende udev-Definitionen **[[https://www.nitrokey.com/sites/default/files/41-nitrokey.rules|hier]]** besorgen.+Für den Betrieb unter **[[https://linuxmint.com/|Linux Mint 21.2]]** insbesondere beim **[[nitrokey:nitropadx230|NitroPad X230]]** müssen wir uns noch passende udev-Definitionen **[[https://www.nitrokey.com/sites/default/files/41-nitrokey.rules|hier]]** besorgen.
  
 Wir wechseln also erst einmal in das entsprechende Konfigurationsverzeichnis ''/etc/udev/rules.d/''. Wir wechseln also erst einmal in das entsprechende Konfigurationsverzeichnis ''/etc/udev/rules.d/''.
Zeile 151: Zeile 170:
    $ nitropy nk3 wink    $ nitropy nk3 wink
 <code>Command line tool to interact with Nitrokey devices 0.4.27</code> <code>Command line tool to interact with Nitrokey devices 0.4.27</code>
 +
 +===== Nitrokey App 2 =====
 +Den Update der Firmware auf den jeweiligen Nitrokey nehmen wir am Besten mit Hilfe der **[[https://github.com/Nitrokey/nitrokey-app2|Nitrokey App V2]]** vor.
 +
 +Dieses Hilfsprogramm holen wir uns nun in der aktuellen Version von der GitHub-Seite mit Hilfe von **''wget''**.
 +   $ wget https://github.com/Nitrokey/nitrokey-app2/releases/download/v2.1.2/nitrokey-app-v2.1.2-x64-linux-binary.tar.gz
 +
 +Anschliessend entpacken wir das heruntergeladene **''tar.gz''**.
 +   $ tar -zvxf nitrokey-app-v2.1.2-x64-linux-binary.tar.gz -C ~/bin/
 +
 +Zu guter Letzt geben wir dem Programm noch die x-Rechte, damit wir es direkt ausführen können.
 +   $ chmod +x ~/bin/nitrokey-app-v2.1.2-x64-linux-binary
 +
 +<WRAP center round important 90%>
 +Unter **Ubuntu 22.04  LTS** und auch unter **Linux Mint 21.2 (Victoria)** scheitert aktuell((Stand: Juli 2023)) der Start des Programms leider noch mit der Fehlermeldung:
 +<code>Traceback (most recent call last):
 +  File "nitrokeyapp/__main__.py", line 6, in <module>
 +ImportError: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.36' not found (required by /tmp/_MEIENQdbd/libstdc++.so.6)
 +[41746] Failed to execute script '__main__' due to unhandled exception!</code>
 +
 +Daher legen wir uns kurzer Hand einfach ein kleines Start-Script an:
 +   $ vim bin/nitrokey-app-v2
 +<file bash bin/nitrokey-app-v2>#!/bin/bash
 +export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6
 +~/bin/nitrokey-app-v2.1.2-x64-linux-binary</file>
 +
 +Auch dieses Script verpassen wir nun noch die **x**-Rechte zum einfachen ausführen.
 +   $ chmod +x bin/nitrokey-app-v2
 +
 +</WRAP>
 +   
 +Zum Starten der **Nitrokey-App v2** rufen wir nun einfach das angelegte Script auf.
 +   $ nitrokey-app-v2
 +
 +{{ :nitrokey:linuxmint:nitrokey_app_v2_01.png?nolink&601 |Bild: Nitrokey App V2}}
 +
 +Über die Auswahl der angezeigten **UUID** auf der linken Seite des angesteckten Nitrokey 3 kann mann dann menügeführt einen Update der Firmware vornehmen.
 +
 +{{ :nitrokey:linuxmint:nitrokey_app_v2_02.png?nolink&600 |Bild: Nitrokey App V2}}
 +
 +Der erfolgreiche Update der Firmware wird entsprechend angezeigt.
 +
 +{{ :nitrokey:linuxmint:nitrokey_app_v2_03.png?nolink&600 |Bild: Nitrokey App V2}}
  
 ===== Anwendungsfälle - Software ===== ===== Anwendungsfälle - Software =====
 ==== GnuPG  ==== ==== GnuPG  ====
-Da es sich bei der Chipkarte des **Nitrokey 3C NFC** um eine standardkompatible OpenPGP-Karte handelt, kann der Kryptostick mit Hilfe von **[[https://www.gnupg.org/|GnuPG]]** verwaltet werden. Hierzu installieren wir uns das Paket **gnupg2**, sofern es nicht bereits bei der Erstkonfiguration unseres Rechner installiert wurde.+Da es sich bei der Chipkarte der beiden **Nitrokey 3C und 3A** jeweils um eine standardkompatible OpenPGP-Karte handelt, kann der Kryptostick mit Hilfe von **[[https://www.gnupg.org/|GnuPG]]** verwaltet werden. Hierzu installieren wir uns das Paket **gnupg2**, sofern es nicht bereits bei der Erstkonfiguration unseres Rechner installiert wurde.
    $ sudo apt install gpg    $ sudo apt install gpg
  
Zeile 287: Zeile 349:
  
 <WRAP center round tip 80%> <WRAP center round tip 80%>
-Laut der [[https://github.com/Nitrokey/opcard-rs/blob/v1.0.0/README.md|opencard-rs]]((**v1.0.0** - Stand Mai 2023)) werden folgende Algorithmen unterstützt:+Laut der [[https://github.com/Nitrokey/opcard-rs/blob/v1.1.1/README.md|opencard-rs]]((**v1.1.1** - Stand Juli 2023)) werden folgende Algorithmen unterstützt:
   * RSA-2048   * RSA-2048
   * RSA-3072 (**__nur__** Schlüssel-Import, **__keine__** Schlüssel-Generierung!)   * RSA-3072 (**__nur__** Schlüssel-Import, **__keine__** Schlüssel-Generierung!)
Zeile 458: Zeile 520:
   Reader ...........: Nitrokey Nitrokey 3 [CCID/ICCD Interface] 00 00   Reader ...........: Nitrokey Nitrokey 3 [CCID/ICCD Interface] 00 00
  
-Ferner muss auf dem Rechner, an dem der Stick angesteckt und administriert werden soll, GnuPG in Version 2.1.16 oder höher installiert sein. Bei Linux Mint 21.ist dies kein Problem da aktuell((Mai '23)) die Version 2.2.27 bereitgestellt wird. Bei Bedarf können wir die Version z.B. wie folgt abfragen.+Ferner muss auf dem Rechner, an dem der Stick angesteckt und administriert werden soll, GnuPG in Version 2.1.16 oder höher installiert sein. Bei Linux Mint 21.ist dies kein Problem da aktuell((Mai '23)) die Version 2.2.27 bereitgestellt wird. Bei Bedarf können wir die Version z.B. wie folgt abfragen.
    $ gpg2 --version | grep gpg    $ gpg2 --version | grep gpg
  
Zeile 908: Zeile 970:
  
 ==== Nitrokey 3C NFC und Nitrokey 3A mini und Secure Shell ==== ==== Nitrokey 3C NFC und Nitrokey 3A mini und Secure Shell ====
 +<WRAP center round important 90%>
 +Ob man in Zeiten von Überwachungsphantasten in Unternehmen und vor allem auch bei einer NSA oder BND, noch **[[http://www.golem.de/news/elliptische-kurven-die-herkunft-der-nist-kurven-1309-101567.html|RSA-Schlüssel]]** einsetzen kann und mag, muss natürlich jeder Admin für sich selbst entscheiden. 
 +
 +Der Sicherheitsguru Bruce Schneier hat in seinem **[[https://www.schneier.com/blog/archives/2013/09/the_nsa_is_brea.html#c1675929|Blog]]** hierzu eine eindeutige Aussage getätigt: 
 +
 +<wrap em>//"On the crypto bits in your guardian piece, I found especially interesting that you suggest classic discrete log crypto over ecc. I want to ask if you could elaborate more on that." __I no longer trust the constants. I believe the NSA has manipulated them through their relationships with industry.__//</wrap>
 +
 +**[[https://de.wikipedia.org/wiki/Curve25519|EED25519]]** ist ein Elliptic Curve Signature Schema, welches beste Sicherheit bei vertretbaren Aufwand verspricht, als ECDSA oder DSA dies der Fall ist. Zur Auswahl sicherer kryptografischer Kurven bei der //Elliptic-Curve Cryptography// findet man auf der Seite [[https://safecurves.cr.yp.to/|hier]] hilfreiche Erklärungen und eine Gegenüberstellung der möglichen verschiedenen Alternativen.
 +</WRAP>
 +
 +Auf RSA Schlüssel muss man aber nicht mehr zwingend zurückgreifen, stehen doch aktuellere und zeitgemässere Cipher, MACs, Schlüssel Typen und Key Exchange Algorithmen zur Verfügung. Als Alternative zu einem RSA-Keys haben wir uns bereits im Abschnitt **[[#ed25519-schluessel_generieren|Nitrokey 3 und GnuPG - ED25519-Schlüssel generieren]]** Schlüsselmaterial auf Basis elliptischer Kurven erstellt, unter anderem auch einen //**Authentication Key**// erstellt. 
 +Diesen Schlüssel wollen wir nun auch zur Serveradministration verwenden.
 +
 +=== SSH Client vorbereiten ===
 +Damit wir beim Verbindungsaufbau auf den Authentication Key zugreifen können, müssen wir unseren Client entsprechend vorbereiten.
 +
 +Hierzu aktivieren wir zunächst die Option ''**enable-ssh-support**'' in der Konfigurationsdatei //**~/.gnupg/gpg-agent.conf
 +**// des GPG-Agenten.
 +   $ vim ~/.gnupg/gpg-agent.conf
 +<file bash ~/.gnupg/gpg-agent.conf># File re-created by pEp
 +# See backup in '/home/django/.gnupg/gpg-agent.conf.1.pep.bkp'
 +
 +# File re-created by pEp
 +# See backup in '/home/django/.gnupg/gpg-agent.conf.0.pep.bkp'
 +
 +default-cache-ttl 300
 +max-cache-ttl 999999
 +
 +# Django : 2023-07-21
 +#          SSH-Unterstützung beim gnupg-agent aktiviert 
 +enable-ssh-support</file>
 +
 +Anschließend müssen wir noch die Datei //**~/.bashrc**// erweitern, damit der **SSH_AUTH_SOCK** für den Zugriff des SSH-Schlüssels auf dem Nitrokey Start genutzt werden kann.
 +   $ vim ~/.bashrc
 +<file bash ~/.bashrc># .bashrc
 +
 +# Source global definitions
 +if [ -f /etc/bashrc ]; then
 +        . /etc/bashrc
 +fi
 +
 +# User specific environment
 +PATH="$HOME/.local/bin:$HOME/bin:$PATH"
 +export PATH
 +
 +# Uncomment the following line if you don't like systemctl's auto-paging feature:
 +# export SYSTEMD_PAGER=
 +
 +# User specific aliases and functions
 +
 +# Django : 2023-07-27
 +#          Definition des SSH_AUTH_SOCK für den Zugriff des SSH-Schlüssels auf dem Nitrokey Start
 +unset SSH_AGENT_PID
 +        if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
 +        export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
 +fi</file>
 +
 +Damit unsere Änderungen aktiv werden, müssen wir nun zum Schluss noch den **pgp-agent** restarten bzw. einen Neustart des Clients erwirken. Der Einfachheit halber für den pragmatischen weg und melden uns einmal von unserer X-Session an unserem Clientrechner ab und wieder an!
 +
 +=== Public-Key des ED25519 SSH exportieren ===
 +Für den Zugriff auf unser Ziel-System mit Hilfe der **SSH** benötigen wir noch den öffentlichen Schlüssel unseres Authentication Keys, den wir nun exportieren werden.
 +Zunächst besorgen wir uns die betreffende Schlüsselkennung des Autentication Keys, genauer gesagt die 4 letzten Zahlenreihen des nachfolgenden Aufrufs.
 +   $ gpg2 --card-status | grep Authentication\ key
 +
 +  Authentication key: 52A9 FF83 7DAF 9A77 7914  C5B1 B2DC 29E1 28F5 834D
 +
 +In diesem Konfigurationsbeispiel ist die Schlüssel-ID des Autentication Keys also die Nummer ''**52A9FF837DAF9A777914C5B1B2DC29E128F5834D**''.
 +
 +Nun exportieren wir den öffentlichen Schlüssel und schreiben diesen in eine separate Datei.
 +   $ keyid=$(gpg2 --card-status | grep Authentication\ key | sed 's/ //g' | sed 's/^.\{18\}//g') ; \
 +             gpg2 --export-ssh-key $keyid >> ~/.ssh/$keyid.ssh.pubkey
 +Der Öffentliche Schlüssel in diesen Konfigurationsbeispiel lautet also:
 +   $ cat .ssh/52A9FF837DAF9A777914C5B1B2DC29E128F5834D.ssh.pubkey
 +
 +  ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJA+NwP2KxzqkrhKxi6JDRDUyE/ofPtiWwOb0ZjbQJW7 openpgp:0xF32A76AE
 +
 +Diesen Schlüssel kopieren wir nun auf das entsprechende Zielsystem an Ort und Stelle ''**~/.ssh/authorized_keys**''.
 +   $ scp ~/.ssh/52A9FF837DAF9A777914C5B1B2DC29E128F5834D.ssh.pubkey zielhost.dmz.nausch.org: && \ 
 +     ssh zielhost.dmz.nausch.org 'cat authorized_keys >> ~/.ssh/authorized_keys'
 +
 +<WRAP round info>Das Kopieren des Public-Keys auf unseren Zielhost mit Anpassen der Dateiberechtigungen kann man natürlich auch einfacher vornehmen. Man benutzt hierzu einfach den Befehl **ssh-copy-id** aus dem Paket //**openssh-clients**//.
 +  * ed25519-Key <code> $ ssh-copy-id -i ~/.ssh/52A9FF837DAF9A777914C5B1B2DC29E128F5834D.ssh.pubkey testhost.intra.nausch.org</code>
 +
 +Mit der Angabe von ''~/.ssh/id_ed25519_dmz'' kopiert dann der Befehl **ssh-copy-id** den zugehörigen öffentlichen Schlüssel auf den Zielhost ''testhost.intra.nausch.org''.
 +</WRAP>
 +
 +
 +
 +=== SSH-Verbindung aufbauen ===
 +Nun können wir wie gewohnt eine Verbindung zu unserem entfernten System aufbauen. 
 +   $ ssh zielhost.dmz.nausch.org
 +
 +Da der SSH-Key zur Authentication nicht im Dateisystem liegt, sondern auf der SmartCard des Nitrokey werden wir nun nach der User-PIN gefragt, damit auf den privaten Schlüssel der Karte zugegriffen werden kann.
 +
 +{{ :suse:nitrokey:nitrokey-start-suse-01.png?direct&350 |Bild: PIN Abfrage beim Zugriff auf den Authentication Key der SmartCard des Nitrokeys}}
 +
 +Der entsperrte Schlüssel der SmartCard des Nitrokey Start wird nur für den Verbindungsaufbau zum Zielsystem verwendet. Bei jedem erneuten SSH-Verbindung müssen wir **__erneut__** bei angestecktem Nitrokey Start die PIN Nummer zum Entsperren eingeben!
 +
  
 ===== Web(-server)-Anwendung ===== ===== Web(-server)-Anwendung =====
  • nitrokey/linuxmint/3cnfc.1689966992.txt.gz
  • Zuletzt geändert: 21.07.2023 19:16.
  • von django