Tag Archives: ssh

SSH Server

Einen SSH Server einzurichten um von einem anderen Rechner Zugang zum eigenen Homeserver zu erhalten ist denkbar einfach. Zunächst wird der SSH Server aus den Paketquellen installiert:

$ sudo apt-get install openssh-server

Die Konfigurationsdatei findet sich unter /etc/ssh/sshd_config und ist meist schon sehr vernünftig eingestellt. Drei Einträge können jedoch verändert bzw. ergänzt werden um ein zusätzliches Maß an Sicherheit zu erhalten:

PermitRootLogin no
PasswordAuthentication no
AllowUsers USERNAME1 USERNAME2 USERNAME3

Mit dem ersten Eintrag wird der Login für den Benutzer root unterbunden.
Der zweite Eintrag unterbindet die Anmeldung mittels Benutzername und Passwort. Nur noch die sichere Anmeldung mittels Public-Key wird gestattet. Es ist wichtig, dass man diese Option erst aktiviert nachdem dem eigenen Public-Key der Zugang gestattet wurde. Andernfalls sperrt man sich selbst aus. Ohne physikalischen Zugang zum Server sieht man dann alt aus.
Der letzte Punkt beschränkt den Zugang auf die angegebenen Benutzer. Alternativ lassen sich mit AllowGroups, DenyUsers, DenyGroups auch feinere Abstufungen machen. Man könnte z.B. alle Benutzer die einen remote Zugang erhalten sollen in eine Gruppe remoteUsers packen und diese dann freischalten.

AllowGroups remoteUsers

Abschließend muss der SSH Server neu gestartet werden um die Änderungen an der Konfigurationsdatei einzulesen.

$ sudo /etc/init.d/ssh restart

TAB-Completition für ssh und scp

Wer täglich mehrmals mittels ssh oder scp auf die selben Server zugreift will nicht immer alle Daten neu eingeben. Je nach User und Server kann dies deutlich länger sein als in diesem Beispiel:

$ ssh useratwork@server.at.work:~/documents/myfile.txt .

Zunächst erstellt man eine Datei ~/.ssh/config und trägt dort die Zugangsdaten ein:

# ssh config file
 
Host homeserver
    HostName name.of.server
    User username
    CheckHostIP no
Host work
    HostName server.at.work
    User useratwork

CheckHostIP hat standardmäßig den Wert yes. Für einen Homeserver ohne statische IP und mit DynDNS sollte man diesen Wert auf no setzen. Sonst erhält man jeden Tag eine Sicherheitswarnung, dass sich die IP des Servers geändert hat.

Um die Auto-Vervollständigung der Befehle mittels TAB in der Shell zu ermöglichen fügt man in der .bashrc die folgenden Zeilen ein:

complete -W "homeserver work" ssh
complete -W "homeserver work" scp

Damit werden die Befehle ssh und scp um Wortlisten zur Auto-Vervollständigung ergänzt. Diese lässt sich nun wie üblich in der Shell nutzen. Somit ergibt sich:

$ ssh work:~/documents/myfile.txt .