Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


lpi2:ssh

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Nächste Überarbeitung
Vorherige Überarbeitung
lpi2:ssh [2013/08/29 12:45] – Externe Bearbeitung 127.0.0.1lpi2:ssh [2019/12/19 07:33] (aktuell) – gelöscht ingo_wichmann
Zeile 1: Zeile 1:
-====== ssh ====== 
-===== Einsatzzwecke von ssh ===== 
-  * Fernadministration 
-  * Dateien übers Netz kopieren 
-  * Tunnel bauen 
  
-===== Vorteile von ssh ===== 
-  * Sicherheit durch Public-Private Key Verschlüsselung 
-  * Mehrere Benutzer können einen Account gemeinsam Nutzen 
-  * Single Sign On möglich 
- 
-====== Grundfunktionen ====== 
-Einloggen auf <Rechner> mit <Benutzer>: 
-  ssh <Benutzer>@<Rechner> 
-In dem Zusammenhang ist die Nutzung von [[screen]] sehr hilfreich. 
- 
-Dateien auf andere Rechner kopieren: 
-  scp <Datei> <Benutzer>@<Rechner>:/<Verzeichnis> 
-Dateien auf andere Rechner ohne lange Pfadangaben ins $HOME-Verzeichnis von <Benutzer> kopieren: 
-  scp <Datei> <Benutzer>@<Rechner>:<Verzeichnis> 
-Fingerprint Hostkey überprüfen: 
-  ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub 
- 
-====== Server Keys neu erzeugen ====== 
-  rm /etc/ssh/ssh_host_*key* 
-=== CentOS 6 === 
-  service sshd restart 
-=== Debian === 
-  dpkg-reconfigure openssh-server 
-==== Clientseitig Server-Key löschen ==== 
-  ssh-keygen -R server-name 
- 
-====== Public-Private-Key Authentifizierung ====== 
-Als Nutzer Schlüsselpaar erzeugen: 
-  ssh-keygen -d -C "Kommentar" 
-Public-Key auf anderen Rechner übertragen: 
-  ssh-copy-id  -i .ssh/id_dsa.pub nutzer05@notebook05 
-oder alternativ: 
-  cat .ssh/id_dsa.pub | ssh nutzer05@notebook05 "cat >> .ssh/authorized_keys" 
-  ssh nutzer05@notebook05 "chmod 400 .ssh/authorized_keys" 
- 
-===== Serverseitig Passwortauthentifizierung abschalten ===== 
-''/etc/ssh/sshd_config'': 
-<file> 
-  UsePAM no 
-  PasswordAuthentication no 
-</file> 
- 
-===== ssh-agent ===== 
-Schlüssel dem ''ssh-agent'' hinzufügen: 
-  ssh-add -i .ssh/id_dsa 
- 
-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 ==== 
-  ssh -A nutzer17@notebook17 
-  ssh -A nutzer07@notebook07 
- 
-==== SSH über mehrere Hops ====  
-((ausführlicher beschrieben unter http://sshmenu.sourceforge.net/articles/transparent-mulithop.html)) 
- 
-''nc'' ( netcat ) muss installiert sein. 
- 
-''~/.ssh/config'' : 
-<file> 
-Host notebook01 
-  Hostname notebook01.linuxhotel.de 
-  ForwardAgent yes 
- 
-Host notebook02 
-  Hostname notebook02.linuxhotel.de 
-  ProxyCommand ssh -q notebook01 nc -q0 %h %p 
-</file> 
- 
-  ssh notebook02 
- 
-==== SSH skriptbar über mehrere Hops ==== 
-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 ==== 
-Mit eingeschaltetem Agent-Forwarding sollte man nur vertrauenswürdige Server besuchen. root-Benutzer auf dem Server können während die Verbindung besteht den ssh-Agent "mitbenutzen". Dazu sucht root nach  
-  * Prozess-Nummern ( ''-t'' ),   
-  * die dem verbundenen Benutzer gehören ( ''-u'' ),  
-  * die eine IP-Verbindung geöffnent haben ( ''-i'' ), 
-  * deren Namen mit der Zeichenkette ''sshd'' beginnt ( ''-c'' ) 
- 
-  PIDS="$(lsof -a -i -c sshd -u nutzer05 -t)" 
- 
-Weiter sucht er nach dazu passenden Socket-Dateien ( ''/tmp/ssh-*/agent.$pid'' ), und speichert die letzte ( ''tail -n 1'' ) in der Variablen ''SSH_AUTH_SOCK'' 
- 
-  export SSH_AUTH_SOCK=$(for pid in $PIDS; do ls /tmp/ssh-*/agent.$pid; done 2>/dev/null | tail -n 1) 
- 
-Auch ein ssh-agent auf dem client-Rechner kann ähnlich mitgenutzt werden: 
- 
-  export SSH_AGENT_PID=$(pgrep -u nutzer05 -x 'ssh-agent') 
-  SSH_AUTH_SOCK=$(lsof -a -U -p $SSH_AGENT_PID -F n | tail -n 1) 
-  export SSH_AUTH_SOCK=${SSH_AUTH_SOCK#n} 
-  ssh nutzer07@notebook07 
- 
-====== Fehlersuche ====== 
-  ssh -v nutzer06@notebook06 
-  ssh -vv nutzer06@notebook06 
- 
-====== SSH Tunnel ====== 
-===== TCP Tunnel ===== 
-==== Vorwärts ==== 
-  ssh -L <lokaler Port>:<Zielrechner>:<Zielport> <Benutzer>@<ssh-Server> 
-oder 
-  ssh -f -L 8080:www.linuxhotel.de:80 nutzer03@notebook03 
-  curl localhost:8080 
- 
-==== X-Weiterleitung ==== 
-  ssh -X <Benutzer>@<Rechner> 
-oder 
-  ssh -f -X notebook09 xterm 
- 
-Dazu muß in der Datei ''/etc/ssh/sshd_config'' des Servers folgender Eintrag vorhanden sein: 
-<file>X11Forwarding yes</file> 
- 
-==== Rückwärts ==== 
-  ssh -R <Port auf ssh-Server>:<Zielrechner>:<Zielport> <Benutzer>@<ssh-Server> 
- 
-Dazu muß in der Datei ''/etc/ssh/sshd_config'' des Servers folgender Eintrag vorhanden sein: 
-<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 ===== 
-Dies ist nur ein Beispiel um zu zeigen das das geht. In der Praxis würde ich immer OpenVPN oder ähnliche Lösungen verwenden. 
- 
-==== Einfache Variante ==== 
-  pppd noauth nodetach pty "ssh root@notebook05 pppd idle 300 nodetach notty noauth" 192.168.2.1:192.168.2.2 
- 
-==== Komplexe Variante ==== 
-PPP over SSH - Tunnel bauen mit Standartwerkzeugen 
- 
-Die Lösung ist noch nicht ausreichend getestet und wahrscheinlich unvollständig.Hier sind die Bausteine, die ich gerade nutze: 
- 
-  pppd 
-  ssh 
-  sudo 
- 
-Damit baue ich eine solche Verbindung: 
- 
-Notebook --> PPP-over-SSH --> Router --> Netzwerk ( 172.16.240.0/24 ) 
- 
-==== Zuerst die Einstellungen auf dem Router==== 
-=== SSH Client Konfiguration === 
-''/home/user/.ssh/authorized_keys'': 
-<file> 
-command="/usr/bin/sudo /usr/sbin/pppd nodetach notty noauth 10.0.0.1:10.0.0.2" ssh-dss laj4flksa7dflkj ... ( der Schlüssel ) ... 
-</file> 
-Dieser Eintrag führt dazu, daß der ''sshd'' für den Benutzer "user" den angegebenen Befehl ausführt, wenn der sich mit dem entsprechenden Schlüssel authentifiziert. 
- 
-Mehr Informationen dazu unter ''man sshd'', im Abschnitt "AUTHORIZED_KEYS FILE FORMAT" 
- 
- 
-=== sudo Konfiguration === 
-''/etc/sudoers'', editieren mit dem Befehl ''visudo'': 
-<file>user router=NOPASSWD: /usr/sbin/pppd *</file> 
- 
-oder strenger: 
-<file>user router=NOPASSWD: /usr/sbin/pppd nodetach notty noauth 
-10.0.0.1\:10.0.0.2</file> 
- 
-Dieser Eintrag führt dazu, daß die Benutzer "user" und "andereruser" auf 
-dem Rechner "router" den Befehl /usr/sbin/pppd mit den angegebenen 
-Optionen mit root-Rechten ausführen dürfen. 
- 
- 
-==== Dann die Einstellungen auf dem Notebook ==== 
-=== sudo Konfiguration === 
-''/etc/sudoers'', editieren mit dem Befehl ''visudo'': 
-<file> 
-User_Alias PPP = user, andereruser 
-PPP notebook=NOPASSWD: /usr/sbin/pppd * 
-PPP notebook=NOPASSWD: /sbin/route add -net 172.16.240.0/24 gw 10.0.0.2 
-</file> 
- 
-oder strenger: 
-<file> 
-User_Alias PPP = user, andereruser 
-PPP notebook=NOPASSWD: /usr/sbin/pppd noauth nodetach persist demand 
-connect /bin/true pty "ssh user@router" 
-PPP notebook=NOPASSWD: /sbin/route add -net 172.16.240.0/24 gw 10.0.0.2 
-</file> 
- 
-Dieser Eintrag führt dazu, daß die Benutzer "user" und "andereruser" auf 
-dem Rechner "notebook" die Befehle ''/sbin/route'' und ''/usr/sbin/pppd'' mit 
-den angegebenen Optionen mit root-Rechten ausführen dürfen.  
- 
-====== sshd als ftp-Server Ersatz ====== 
-scponly: http://www.sublimation.org/scponly/ 
- 
-====== Links ====== 
-  * [[ http://www.jfranken.de/homepages/johannes/vortraege/ssh1_inhalt.de.html | SSH Grundlagen von Johannes Franken ]] 
-  * [[ http://www.jfranken.de/homepages/johannes/vortraege/ssh2_inhalt.de.html | SSH Tunnels von Johannes Franken ]] 
-  * [[ http://www.jfranken.de/homepages/johannes/vortraege/ssh3_inhalt.de.html | Firewalls durchbohren von Johannes Franken ]] 
-  * [[ http://www.employees.org/~satch/ssh/faq/ssh-faq.html | SSH FAQ englisch ]] 
-  * [[ http://www.openssh.org/de/index.html | SSH Homepage deutsch ]] 
lpi2/ssh.1377780317.txt.gz · Zuletzt geändert: 2014/02/27 01:21 (Externe Bearbeitung)