SVN über SSH aber ohne Shell Zugriff
Wir nach außen Subversion anbieten. Alles läuft über einen SSH Tunnel zu uns ins LAN (noch)
Also mein Problem ist folgendes. Ich will SVN über einen SSH Tunnel nach außen anbieten. Aktuell haben wir einen Ubuntu Server 10.04 laufen. Wenn ich jetzt SVN nach außen anbiete und dem User, welchen ich angelegt habe die Shell /bin/false gebe, funktioniert es nicht. Alles andere wär zu gefährlich wegen der internen Daten. Ich will nur, dass der Kunde sich über den SSH Tunnel auf mein Subversion Repository einloggen kann - nicht mehr nicht weniger.
Bitte helft mir.
Gruß,
BaLu
Also mein Problem ist folgendes. Ich will SVN über einen SSH Tunnel nach außen anbieten. Aktuell haben wir einen Ubuntu Server 10.04 laufen. Wenn ich jetzt SVN nach außen anbiete und dem User, welchen ich angelegt habe die Shell /bin/false gebe, funktioniert es nicht. Alles andere wär zu gefährlich wegen der internen Daten. Ich will nur, dass der Kunde sich über den SSH Tunnel auf mein Subversion Repository einloggen kann - nicht mehr nicht weniger.
Bitte helft mir.
Gruß,
BaLu
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 173075
Url: https://administrator.de/contentid/173075
Ausgedruckt am: 22.11.2024 um 07:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo BaLu,
Wenn es um einen reinen SVN-Zugang von aussen geht, kann man Apache mit mod_dav_svn verwenden. Die Authentifizierung und Berechtigung ist Sache von SVN.
Bei SSH müsstest du neben SVN Berechtigungen zudem auch System-User anlegen.
Wenn du bereits mit SSH tunnelst, und du lediglich eine offene SSH Verbindung brauchst:
Lege ein Skript für die Logon-Shell an, das nur wartet:
#/bin/sh
echo Du bist nun mit Server XY verbunden. Return beendet die Verbindung.
read dummy
exit 0
und speichere es auf dem Server - ich sag mal /bin/svntunnel.sh
Diese /bin/svntunnel.sh vergibst du als User-Logon-Shell.
Viele Grüsse
Axel
Wenn es um einen reinen SVN-Zugang von aussen geht, kann man Apache mit mod_dav_svn verwenden. Die Authentifizierung und Berechtigung ist Sache von SVN.
Bei SSH müsstest du neben SVN Berechtigungen zudem auch System-User anlegen.
Wenn du bereits mit SSH tunnelst, und du lediglich eine offene SSH Verbindung brauchst:
Lege ein Skript für die Logon-Shell an, das nur wartet:
#/bin/sh
echo Du bist nun mit Server XY verbunden. Return beendet die Verbindung.
read dummy
exit 0
und speichere es auf dem Server - ich sag mal /bin/svntunnel.sh
Diese /bin/svntunnel.sh vergibst du als User-Logon-Shell.
Viele Grüsse
Axel
Hallo BaLu,
nein, der SSH-User hat mit obigen Skript eben keinerlei Shellzugriff und hat keinerlei Möglichkeit, auch nur irgendein Kommando abzusetzen. Das Skript wartet nur auf ein Return. Auch wenn er abbricht, z.B. Strg + C, dann wird das Skript beendet und der Tunnel wieder geschlossen.
Viele Grüsse
Axel
nein, der SSH-User hat mit obigen Skript eben keinerlei Shellzugriff und hat keinerlei Möglichkeit, auch nur irgendein Kommando abzusetzen. Das Skript wartet nur auf ein Return. Auch wenn er abbricht, z.B. Strg + C, dann wird das Skript beendet und der Tunnel wieder geschlossen.
Viele Grüsse
Axel