Bearbeiten von „SSH“
Zur Navigation springen
Zur Suche springen
Warnung: Du bist nicht angemeldet. Deine IP-Adresse wird bei Bearbeitungen öffentlich sichtbar. Melde dich an oder erstelle ein Benutzerkonto, damit Bearbeitungen deinem Benutzernamen zugeordnet werden.
Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und veröffentliche dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.
Aktuelle Version | Dein Text | ||
Zeile 1: | Zeile 1: | ||
= Secure SHell = | = Secure SHell = | ||
Man kann sich mittels SSH von einem beliebigen Rechner auf seinem Informatik-Rechenzentrum-Account einloggen. Das ist nützlich z.B. wenn man vom eigenen Laptop, und nicht von einem Poolrechner aus [[drucken]] möchte. Wie SSH beim iRZ funktioniert, und was man alles tolles machen kann, ist in diesem Artikel beschrieben. | |||
=== hosts === | === hosts === | ||
iRZ: rzssh1.informatik.uni-hamburg.de | |||
==== | Das [[RRZ|Regionale Rechenzentrum (RRZ)]] hat auch zwei SSH-Server (rrzlogin{,2}.rrz.uni-hamburg.de), die sind aber schlecht. | ||
==== Simples Einloggen ==== | |||
Mit folgendem Befehl kann man sich auf seinem iRZ-Account einfach einloggen: | Mit folgendem Befehl kann man sich auf seinem iRZ-Account einfach einloggen: | ||
<pre> | <pre> | ||
$ ssh <kennung>@rzssh1.informatik.uni-hamburg.de | $ ssh <kennung>@rzssh1.informatik.uni-hamburg.de | ||
</pre> | </pre> | ||
Da dies etwas nervig ist, werden im Weiteren ein paar Tricks erläutert. | |||
=== Konfiguration === | ==== Konfiguration ==== | ||
Die ~/.ssh/config enthaelt die Konfiguration fuer deinen SSH Client. Dort kann man viele tolle Sachen machen, zB muss man nicht immer <code>ssh rzssh1.informatik.uni-hamburg.de</code> machen, sondern bspw. <code>ssh fbi</code>. Das ist gut. | Die ~/.ssh/config enthaelt die Konfiguration fuer deinen SSH Client. Dort kann man viele tolle Sachen machen, zB muss man nicht immer <code>ssh rzssh1.informatik.uni-hamburg.de</code> machen, sondern bspw. <code>ssh fbi</code>. Das ist gut. | ||
Zeile 30: | Zeile 21: | ||
<pre> | <pre> | ||
Host fbi | Host fbi | ||
User | User 3leet | ||
ForwardX11 yes | ForwardX11 yes | ||
HostName rzssh1.informatik.uni-hamburg.de | HostName rzssh1.informatik.uni-hamburg.de | ||
DynamicForward 7777 | DynamicForward 7777 | ||
#LocalForward 6631 linuxprint.informatik.uni-hamburg.de:631 | |||
</pre> | </pre> | ||
Neben dem einfachen "ssh fbi" hast du nun durch <pre>DynamicForward</pre> auch einen lokalen SOCKS Proxy zum [[Tunneln]]. | |||
Wenn du mehr tolle Sachen mit deiner SSH-Config-Datei machen willst, schau dir <pre>man ssh_config</pre> an. | |||
<pre> | |||
</pre> | |||
<pre> | |||
</pre> | |||
==== zu anderen Hosts ==== | |||
Mit Hilfe einer geeigneten ~/.ssh/config kann man von zu Hause aus sich bequem zu Hosts verbinden, die nicht direkt zugaenglich sind: | |||
==== | |||
Mit | |||
<pre> | <pre> | ||
Host rzdspc* | Host rzdspc* | ||
User 4winter | User 4winter | ||
ProxyCommand ssh | ProxyCommand ssh 4winter@rzssh1.informatik.uni-hamburg.de /opt/bin/netcat %h %p 2> /dev/null | ||
</pre> | </pre> | ||
Zeile 133: | Zeile 50: | ||
Last cluster login: Sun Oct 7 14:03:05 on rzdspc6 | Last cluster login: Sun Oct 7 14:03:05 on rzdspc6 | ||
rzdspc6$ | rzdspc6$ | ||
</pre> | </pre> | ||
=== | === Public-Key Authentifizierung === | ||
Vom Laptop im Netz des Informatikum anmelden, ohne jedesmal das Passwort eingeben zu müssen? | Vom Laptop im Netz des Informatikum anmelden, ohne jedesmal das Passwort eingeben zu müssen? | ||
Geht auch, und ist dabei trotzdem noch sicher! | |||
Auf dem eigenen Laptop muss zuerst ein Public/Private-Schlüsselpaar erstellt werden. Das funktioniert durch das Programm "ssh-keygen" und sieht dann etwa so aus: | Auf dem eigenen Laptop muss zuerst ein Public/Private-Schlüsselpaar erstellt werden. Das funktioniert durch das Programm "ssh-keygen" und sieht dann etwa so aus: | ||
<pre> | <pre> | ||
olli@desktop:~$ ssh-keygen | olli@desktop:~$ ssh-keygen | ||
Generating public/private rsa key pair. | Generating public/private rsa key pair. | ||
Enter file in which to save the key (/home/olli/.ssh/id_rsa): | Enter file in which to save the key (/home/olli/.ssh/id_rsa): | ||
Enter passphrase (empty for no passphrase): | Enter passphrase (empty for no passphrase): | ||
Enter same passphrase again: | Enter same passphrase again: | ||
Your identification has been saved in /home/olli/.ssh/id_rsa. | Your identification has been saved in /home/olli/.ssh/id_rsa. | ||
Your public key has been saved in /home/olli/.ssh/id_rsa.pub. | Your public key has been saved in /home/olli/.ssh/id_rsa.pub. | ||
Zeile 210: | Zeile 78: | ||
Falls man das Programm ssh-copy-id nicht hat, kann man den Vorgang auch per Hand durchführen. Man kopiert die Datei "~/.ssh/id_rsa.pub" vom Client, also da wo man sie erstellt hat, auf den Zielrechner, loggt sich dann an dem Zielrechner ein und kopiert den Inhalt ans Ende der Datei ~/.ssh/authorized_keys. "cat mein-key.pub >> ~/.ssh/authorized_keys" auf dem Server ausgeführt reicht dann. | Falls man das Programm ssh-copy-id nicht hat, kann man den Vorgang auch per Hand durchführen. Man kopiert die Datei "~/.ssh/id_rsa.pub" vom Client, also da wo man sie erstellt hat, auf den Zielrechner, loggt sich dann an dem Zielrechner ein und kopiert den Inhalt ans Ende der Datei ~/.ssh/authorized_keys. "cat mein-key.pub >> ~/.ssh/authorized_keys" auf dem Server ausgeführt reicht dann. | ||
=== expect === | |||
Expect ist ein kleines Programm, was einen Prozess startet und auf Ausgaben dieses Prozess wartet, um dann Eingaben an den Prozess zu senden. Nun kann man expect nutzen um ein einfaches "login"-Script für die UHH-Firewall zu schreiben, da dort Public-Key Authentifizierung nicht möglich ist. | Expect ist ein kleines Programm, was einen Prozess startet und auf Ausgaben dieses Prozess wartet, um dann Eingaben an den Prozess zu senden. Nun kann man expect nutzen um ein einfaches "login"-Script für die UHH-Firewall zu schreiben, da dort Public-Key Authentifizierung nicht möglich ist. | ||
Nachteil ist natürlich, dass das eigene '''Passwort im Klartext''' im Script zu finden ist | Nachteil ist natürlich, dass das eigene '''Passwort im Klartext''' im Script zu finden ist. Wenn einen das nicht stört, dann kann man sich ''expect'' installieren und folgendes in eine Datei schreiben: | ||
<pre> | <pre> | ||
#!/usr/bin/expect -f | #!/usr/bin/expect -f | ||
set host " | set host "10.1.1.10" | ||
set user " | set user "3leet@inf" | ||
set pass "geheimes-pw" | set pass "geheimes-pw" | ||
Zeile 241: | Zeile 109: | ||
./meine-datei | ./meine-datei | ||
=== Nützliche "Tricks" === | === Nützliche "Tricks" === | ||
Zeile 360: | Zeile 130: | ||
=== Probleme === | === Probleme === | ||
* scp will nicht weil Leerzeichem im Pfad/ im Dateinamen sind: | * scp will nicht weil Leerzeichem im Pfad/ im Dateinamen sind: | ||
den Pfad in Hochkomma <code>'</code> setzen oder vor die Leerzeichen ein Backslash<code>\</code>. | den Pfad in Hochkomma <code>'</code> setzen oder vor die Leerzeichen ein Backslash<code>\</code>. | ||
'''Zwei äquivaltente Beispiele:''' | '''Zwei äquivaltente Beispiele:''' | ||
Zeile 377: | Zeile 147: | ||
<pre>ssh -c blowfish <mein-host> "tar -c /mein/ordner/mit/kleinen/dateien" | tar -xv -C /hier/hin/</pre> | <pre>ssh -c blowfish <mein-host> "tar -c /mein/ordner/mit/kleinen/dateien" | tar -xv -C /hier/hin/</pre> | ||
[[Kategorie:Dba]] | [[Kategorie:Dba]] |