Mehrere SSH Daemons auf einem Server

Aus Laub-Home Wiki

Will man zum Beispiel einen SSH Zugang nicht von außen verfügbar machen, braucht aber für einen Bestimmten Benutzer oder Gruppe einen SFTP/SCP Zugang, so kann man dies mit einer 2ten SSH Server Instanz regeln. Es wird einfach eine 2te Instanz unter einem anderen TCP Port hochgefahren, die

  1. den Root Login verbietet
  2. nur User aus der sftponly Gruppe oder nur einem bestimmten Benutzer den SSH Login erlaubt
  3. Unter einem hohen nicht SSH typischen Port läuft

Nun zum Doing:
Als erstes duplizieren wir die sshd_config

cp -rp /etc/ssh/sshd_config /etc/ssh/sshd_config_1

und ändern hier folgende Zeilen ab:

-#Port 22
+Port 20002

-#PermitRootLogin yes
+PermitRootLogin no

# für den Gruppe Zugriff
+AllowGroups secureusersonly
# Oder einzelne Benutzer erlauben
+AllowUsers secureuser1 secureuser2

Nun brauchen wir noch ein 2tes INIT Script, auch hier kopieren wir uns das original File:

# Unter RedHat
cp -rp /etc/init.d/sshd /etc/init.d/sshd_1
# Unter Debian
cp -rp /etc/init.d/ssh /etc/init.d/ssh_1

Und nun wird das Ganze editiert:
/etc/init.d/sshd_1 bzw. /etc/init.d/ssh_1

# Provides: sshd_1

prog="sshd_1"

RSA1_KEY=/etc/ssh/ssh_host_key_1
RSA_KEY=/etc/ssh/ssh_host_rsa_key_1
DSA_KEY=/etc/ssh/ssh_host_dsa_key_1
PID_FILE=/var/run/sshd_1.pid
# Folgende Zeile hinzufügen!!!
OPTIONS="-f /etc/ssh/sshd_config_1"

[ -f /etc/ssh/sshd_config_1 ] || exit 6

So, nun sollte der 2te Dienst hochgefahren werden:

# Unter RedHat
/etc/init.d/sshd_1 start
# Unter Debian
/etc/init.d/ssh_1 start

und mit netstat kann nun geprüft werden ob der Port verfügbar ist:

netstat -an | grep 20002

Dann noch in den Autostart:

# Unter RedHat
chkconfig sshd_1 on
# Unter Debian
udate-rc.d ssh_1 defaults

Quellen