lpi2:ssh
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
| lpi2:ssh [2014/07/02 08:06] – [SSH über mehrere Hops] andre_naehring | lpi2: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 < | ||
| - | ssh < | ||
| - | In dem Zusammenhang ist die Nutzung von [[screen]] sehr hilfreich. | ||
| - | |||
| - | Dateien auf andere Rechner kopieren: | ||
| - | scp < | ||
| - | Dateien auf andere Rechner ohne lange Pfadangaben ins $HOME-Verzeichnis von < | ||
| - | scp < | ||
| - | Fingerprint Hostkey überprüfen: | ||
| - | ssh-keygen -l -f / | ||
| - | |||
| - | ====== Server Keys neu erzeugen ====== | ||
| - | rm / | ||
| - | === 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 " | ||
| - | Public-Key auf anderen Rechner übertragen: | ||
| - | ssh-copy-id | ||
| - | oder alternativ: | ||
| - | cat .ssh/ | ||
| - | ssh nutzer05@notebook05 "chmod 400 .ssh/ | ||
| - | |||
| - | ===== Serverseitig Passwortauthentifizierung abschalten ===== | ||
| - | ''/ | ||
| - | < | ||
| - | UsePAM no | ||
| - | PasswordAuthentication no | ||
| - | </ | ||
| - | |||
| - | ===== ssh-agent ===== | ||
| - | Schlüssel dem '' | ||
| - | ssh-add -i .ssh/id_dsa | ||
| - | |||
| - | Bei SuSE 11.0 wird der '' | ||
| - | mkdir -m 700 ~/.ssh | ||
| - | |||
| - | ==== Agent-Forwarding nutzen ==== | ||
| - | ssh -A nutzer17@notebook17 | ||
| - | ssh -A nutzer07@notebook07 | ||
| - | |||
| - | ==== SSH über mehrere Hops ==== | ||
| - | ((ausführlicher beschrieben unter http:// | ||
| - | |||
| - | '' | ||
| - | < | ||
| - | Host notebook01 | ||
| - | Hostname notebook01.linuxhotel.de | ||
| - | ForwardAgent yes | ||
| - | |||
| - | Host notebook02 | ||
| - | Hostname notebook02.linuxhotel.de | ||
| - | ProxyCommand ssh -W %h:%p notebook01 | ||
| - | </ | ||
| - | |||
| - | 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 " | ||
| - | |||
| - | ==== 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 " | ||
| - | * Prozess-Nummern ( '' | ||
| - | * die dem verbundenen Benutzer gehören ( '' | ||
| - | * die eine IP-Verbindung geöffnent haben ( '' | ||
| - | * deren Namen mit der Zeichenkette '' | ||
| - | |||
| - | PIDS=" | ||
| - | |||
| - | Weiter sucht er nach dazu passenden Socket-Dateien ( ''/ | ||
| - | |||
| - | export SSH_AUTH_SOCK=$(for pid in $PIDS; do ls / | ||
| - | |||
| - | Auch ein ssh-agent auf dem client-Rechner kann ähnlich mitgenutzt werden: | ||
| - | |||
| - | export SSH_AGENT_PID=$(pgrep -u nutzer05 -x ' | ||
| - | SSH_AUTH_SOCK=$(lsof -a -U -p $SSH_AGENT_PID -F n | tail -n 1) | ||
| - | export SSH_AUTH_SOCK=${SSH_AUTH_SOCK# | ||
| - | ssh nutzer07@notebook07 | ||
| - | |||
| - | ====== Fehlersuche ====== | ||
| - | ssh -v nutzer06@notebook06 | ||
| - | ssh -vv nutzer06@notebook06 | ||
| - | |||
| - | ====== SSH Tunnel ====== | ||
| - | ===== TCP Tunnel ===== | ||
| - | ==== Vorwärts ==== | ||
| - | ssh -L <lokaler Port>:< | ||
| - | oder | ||
| - | ssh -f -L 8080: | ||
| - | curl localhost: | ||
| - | |||
| - | ==== X-Weiterleitung ==== | ||
| - | ssh -X < | ||
| - | oder | ||
| - | ssh -f -X notebook09 xterm | ||
| - | |||
| - | Dazu muß in der Datei ''/ | ||
| - | < | ||
| - | |||
| - | ==== Rückwärts ==== | ||
| - | ssh -R <Port auf ssh-Server>:< | ||
| - | |||
| - | Dazu muß in der Datei ''/ | ||
| - | < | ||
| - | |||
| - | ==== Socks Proxy ==== | ||
| - | für firefox, curl, ... | ||
| - | ssh -f -D 1080 nutzer03@notebook09 | ||
| - | curl --socks5 localhost: | ||
| - | |||
| - | ===== ppp over ssh ===== | ||
| - | Dies ist nur ein Beispiel um zu zeigen das das geht. Eine modernere Variante ist die Funktion '' | ||
| - | |||
| - | ==== Einfache Variante ==== | ||
| - | pppd noauth nodetach pty "ssh root@notebook05 pppd idle 300 nodetach notty noauth" | ||
| - | |||
| - | ==== 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/ | ||
| - | |||
| - | ==== Zuerst die Einstellungen auf dem Router==== | ||
| - | === SSH Client Konfiguration === | ||
| - | ''/ | ||
| - | < | ||
| - | command="/ | ||
| - | </ | ||
| - | Dieser Eintrag führt dazu, daß der '' | ||
| - | |||
| - | Mehr Informationen dazu unter '' | ||
| - | |||
| - | |||
| - | === sudo Konfiguration === | ||
| - | ''/ | ||
| - | < | ||
| - | |||
| - | oder strenger: | ||
| - | < | ||
| - | 10.0.0.1\: | ||
| - | |||
| - | Dieser Eintrag führt dazu, daß die Benutzer " | ||
| - | dem Rechner " | ||
| - | Optionen mit root-Rechten ausführen dürfen. | ||
| - | |||
| - | |||
| - | ==== Dann die Einstellungen auf dem Notebook ==== | ||
| - | === sudo Konfiguration === | ||
| - | ''/ | ||
| - | < | ||
| - | User_Alias PPP = user, andereruser | ||
| - | PPP notebook=NOPASSWD: | ||
| - | PPP notebook=NOPASSWD: | ||
| - | </ | ||
| - | |||
| - | oder strenger: | ||
| - | < | ||
| - | User_Alias PPP = user, andereruser | ||
| - | PPP notebook=NOPASSWD: | ||
| - | connect /bin/true pty "ssh user@router" | ||
| - | PPP notebook=NOPASSWD: | ||
| - | </ | ||
| - | |||
| - | Dieser Eintrag führt dazu, daß die Benutzer " | ||
| - | dem Rechner " | ||
| - | den angegebenen Optionen mit root-Rechten ausführen dürfen. | ||
| - | |||
| - | ====== sshd als ftp-Server Ersatz ====== | ||
| - | scponly: http:// | ||
| - | |||
| - | ====== Links ====== | ||
| - | * [[ http:// | ||
| - | * [[ http:// | ||
| - | * [[ http:// | ||
| - | * [[ http:// | ||
| - | * [[ http:// | ||
lpi2/ssh.1404288413.txt.gz · Zuletzt geändert: 2014/07/02 08:06 von andre_naehring
