Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


fortgeschrittene:ssh

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Nächste Überarbeitung
Vorherige Überarbeitung
fortgeschrittene:ssh [2010/06/30 15:25]
127.0.0.1 Externe Bearbeitung
fortgeschrittene:ssh [2023/01/27 15:37] (aktuell)
ingo_wichmann
Zeile 1: Zeile 1:
-====== ​Einsatzzwecke von ssh ====== +====== ssh ======
-  * Fernadministration +
-  * Dateien übers Netz kopieren +
-  * Tunnel bauen+
  
-====== ​Vorteile von ssh ====== +===== Server Keys ===== 
-  * Sicherheit durch Public-Private Key Verschlüsselung +==== Server Keys neu erzeugen ​==== 
-  * Mehrere Benutzer können einen Account gemeinsam Nutzen +  ​rm /​etc/​ssh/​ssh_host_*key*
-  ​Single Sign On möglich+
  
-====== ​Grundfunktionen ​====== +=== CentOS (ab 6), SuSE === 
-Einloggen auf <​Rechner>​ mit <​Benutzer>:​ +  service sshd restart 
-  ​ssh <​Benutzer>​@<​Rechner>​ +=== Debian ​=== 
-In dem Zusammenhang ist die Nutzung von [[screen]] sehr hilfreich.+  ​dpkg-reconfigure openssh-server
  
-Dateien auf andere Rechner kopieren: +==== Clientseitig Server-Key löschen ==== 
-  ​scp <​Datei>​ <​Benutzer>​@<​Rechner>:/<​Verzeichnis>​ +  ​ssh-keygen -R server-name 
-Dateien auf andere Rechner ohne lange Pfadangaben ins $HOME-Verzeichnis von <​Benutzer>​ kopieren: +  ssh-keygen -R IP-Adressse
-  scp <​Datei>​ <​Benutzer>​@<​Rechner>:<​Verzeichnis>​ +
-Fingerprint Hostkey überprüfen:​ +
-  ssh-keygen --f /​etc/​ssh/​ssh_host_rsa_key.pub+
  
 +==== Im DNS ablegen ====
 +DNS Resource Records erzeugen:
 +  ssh-keygen -r servername
 +oder
 +  ssh-keyscan -D servername
 +
 +und in der [[bind|DNS Zonendatei des primären Nameservers]] hinterlegen.
 +
 +=== Clientseitige Einstellungen ===
 +Damit der OpenSSH Client den SSHFP-Einträgen im DNS vertraut muss DNSSEC für die Zone aktiviert sein.
 +
 +<file txt ~/​.ssh/​config>​
 +VerifyHostKeyDNS yes
 +</​file>​
 +
 +Ab glibc Version 2.31:
 +<file txt /​etc/​resolv.conf>​
 +options trust-ad
 +</​file>​
 +
 +Falls systemd-resolved genutzt wird:
 +<file txt /​etc/​systemd/​resolved.conf.d/​override.conf>​
 +[Resolve]
 +DNSSEC=allow-downgrade
 +# oder
 +# DNSSEC=yes
 +</​file>​
  
-====== Server Keys neu erzeugen ====== 
-Debian: 
-  rm /​etc/​ssh/​ssh_host_*key* 
-  dpkg-reconfigure openssh-server 
  
 ====== Public-Private-Key Authentifizierung ====== ====== Public-Private-Key Authentifizierung ======
 +===== Benutzerauthentifizierung =====
 Als Nutzer Schlüsselpaar erzeugen: Als Nutzer Schlüsselpaar erzeugen:
-  ssh-keygen ​-d -C "​Kommentar"​+  ssh-keygen -C "​Kommentar"​
 Public-Key auf anderen Rechner übertragen:​ Public-Key auf anderen Rechner übertragen:​
-  ssh-copy-id ​ -i .ssh/id_dsa.pub nutzer05@notebook05 +  ssh-copy-id ​ -i .ssh/id_rsa.pub nutzer05@notebook05 
-Alternativ+oder alternativ
-  cat .ssh/id_dsa.pub | ssh nutzer05@notebook05 "cat >> .ssh/​authorized_keys"​ +  cat .ssh/id_rsa.pub | ssh nutzer05@notebook05 "cat >> .ssh/​authorized_keys
-  ssh nutzer05@notebook05 "​chmod ​400 .ssh/​authorized_keys"​+  ssh nutzer05@notebook05 "mkdir -m 700 .ssh
 +  ssh nutzer05@notebook05 "​chmod ​600 .ssh/​authorized_keys"​
  
 ===== Serverseitig Passwortauthentifizierung abschalten ===== ===== Serverseitig Passwortauthentifizierung abschalten =====
Zeile 47: Zeile 65:
   ssh-add -i .ssh/id_dsa   ssh-add -i .ssh/id_dsa
  
-Bei SuSE 11.0 wird der ''​ssh-agent'' ​bei der Anmeldung nur gestartet, wenn das Verzeichnis ''​~/​.ssh''​ existiert+Dem ''​ssh-agent'' ​verfügbare Schlüssel anzeigen
-  ​mkdir -m 700 ~/.ssh+  ​ssh-add -l
  
 +((  Bei SuSE 11.0 wird der ''​ssh-agent''​ bei der Anmeldung nur gestartet, wenn das Verzeichnis ''​~/​.ssh''​ existiert:
 +  mkdir -m 700 ~/.ssh
 +))
 ==== Agent-Forwarding nutzen ==== ==== Agent-Forwarding nutzen ====
   ssh -A nutzer17@notebook17   ssh -A nutzer17@notebook17
   ssh -A nutzer07@notebook07   ssh -A nutzer07@notebook07
  
-==== SSH skriptbar über mehrere Hops mit ssh-agent ==== 
-Befehl per Skript auf notebook16 ausführen, notebook16 ist nur via notebook15 zu erreichen: 
-  ssh-agent bash -c "​ssh-add .ssh/​id_dsa;​ ssh -A nutzer15@notebook15 ssh nutzer16@notebook16 ls" 
  
 ==== Sicherheitseinschränkung bei Agent-Forwarding ==== ==== Sicherheitseinschränkung bei Agent-Forwarding ====
Zeile 82: Zeile 100:
   ssh -vv nutzer06@notebook06   ssh -vv nutzer06@notebook06
  
-====== ​sshd als ftp-Server Ersatz ​====== +====== ​SSH Tunnel ​====== 
-scponly: http://​www.sublimation.org/​scponly/​ +===== TCP Tunnel ===== 
- +==== Vorwärts ====
-====== TCP Tunnel ​====== +
-Allgemein:+
   ssh -L <lokaler Port>:<​Zielrechner>:<​Zielport>​ <​Benutzer>​@<​ssh-Server>​   ssh -L <lokaler Port>:<​Zielrechner>:<​Zielport>​ <​Benutzer>​@<​ssh-Server>​
 +oder
 +  ssh -f -L 8080:​www.linuxhotel.de:​80 nutzer03@notebook03
 +  curl localhost:​8080
  
-Spezialfall ​X-Weiterleitung:+==== X-Weiterleitung ​====
   ssh -X <​Benutzer>​@<​Rechner>​   ssh -X <​Benutzer>​@<​Rechner>​
 +oder
 +  ssh -f -X notebook09 xterm
  
-Dazu muß in der Datei ''/​etc/​ssh/​sshd_config''​ folgender Eintrag vorhanden sein:+Dazu muß in der Datei ''/​etc/​ssh/​sshd_config'' ​des Servers ​folgender Eintrag vorhanden sein:
 <​file>​X11Forwarding yes</​file>​ <​file>​X11Forwarding yes</​file>​
  
-Tunnel ​Rückwärts+==== Rückwärts ​====
   ssh -R <Port auf ssh-Server>:<​Zielrechner>:<​Zielport>​ <​Benutzer>​@<​ssh-Server>​   ssh -R <Port auf ssh-Server>:<​Zielrechner>:<​Zielport>​ <​Benutzer>​@<​ssh-Server>​
  
-Dazu muß in der Datei ''/​etc/​ssh/​sshd_config''​ folgender Eintrag vorhanden sein:+Dazu muß in der Datei ''/​etc/​ssh/​sshd_config'' ​des Servers ​folgender Eintrag vorhanden sein:
 <​file>​GatewayPorts yes</​file>​ <​file>​GatewayPorts yes</​file>​
  
 +==== Socks Proxy ====
 +für firefox, curl, ...
 +  ssh -f -D 1080 nutzer03@notebook09
 +  curl --socks5 localhost:​1080 www.linuxhotel.de
  
-====== ppp over ssh ====== +===== ppp over ssh ===== 
-Dies ist nur ein Beispiel um zu zeigen ​das das geht. In der Praxis würde ich immer OpenVPN oder ähnliche Lösungen verwenden.+Dies ist nur ein Beispiel um zu zeigen, dass das geht. Eine modernere Variante ist die Funktion ''​PermitTunnel''​ von ssh zu nutzen
  
-===== Einfache Variante ​=====+==== Einfache Variante ====
   pppd noauth nodetach pty "ssh root@notebook05 pppd idle 300 nodetach notty noauth"​ 192.168.2.1:​192.168.2.2   pppd noauth nodetach pty "ssh root@notebook05 pppd idle 300 nodetach notty noauth"​ 192.168.2.1:​192.168.2.2
  
-===== Komplexe Variante ​=====+==== Komplexe Variante ====
 PPP over SSH - Tunnel bauen mit Standartwerkzeugen PPP over SSH - Tunnel bauen mit Standartwerkzeugen
  
Zeile 167: Zeile 191:
 den angegebenen Optionen mit root-Rechten ausführen dürfen. ​ den angegebenen Optionen mit root-Rechten ausführen dürfen. ​
  
 +====== sshd als ftp-Server Ersatz ======
 +scponly: https://​github.com/​scponly/​scponly
 ====== Links ====== ====== Links ======
   * [[ http://​www.jfranken.de/​homepages/​johannes/​vortraege/​ssh1_inhalt.de.html | SSH Grundlagen von Johannes Franken ]]   * [[ http://​www.jfranken.de/​homepages/​johannes/​vortraege/​ssh1_inhalt.de.html | SSH Grundlagen von Johannes Franken ]]
fortgeschrittene/ssh.1277911553.txt.gz · Zuletzt geändert: 2011/06/11 11:56 (Externe Bearbeitung)