SSH verbindung ohne Shell

Status
Für weitere Antworten geschlossen.

Whitesheep

Benutzer
Mitglied seit
29. Mai 2009
Beiträge
81
Punkte für Reaktionen
2
Punkte
14
Moin,

sufu und Google haben leider nichts ausgespuckt was funktioniert :(
und ihr habt eigentlich immer prima Ideen...

Ich versuche bestimmten Benutzern die Möglichkeit zu geben einen SSH Tunnel zu meiner DS aufzubauen um mit rsync Daten zu kopieren.
Würde aber gerne verhindern das diese User Zugriff auf die shell bekommen.

ist das möglich :confused:

Der hier beschriebene Lösungsansatz funktioniert leider nicht der Benutzer bekommt immer ein "Permission denied, please try again."

Danke schon mal für eure Infos :)
(DS409+ mit DSM 3.1-1613)
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
schau dir mal ssh und authorized_keys an. Damit kannst du mittels eines Zertifikats ziemlich genau festlegen was der User darf und was nicht. Der einfachste Fall ist es wenn du bei einem bestimmten Zertifikat immer ein Backup mit denselben Parametern machen willst. Dann könntest du das Kommando inkl Parameter in authorized_keys angeben. Allerdings setzt das die Umstellung des ssh auf Zerifikatslogin und nur Zertifikatslogin voraus. Wie das geht und auch ein bisschen mehr zum Thema ssh, Zertifikate und authorized_keys findest du in unserem Wiki
auch das folgende ned vergessen: Per default darf sich nur der User root am ssh resp telnet anmelden. Andere user, v.a. die selber erstellten, haben keine gültige Loginshell in der Datei /etc/passwd eingetragen. Könnte sein, dass der Permission Denied auch daher kommt. Hast du es denn als User root oder nicht-root probiert?
 

Whitesheep

Benutzer
Mitglied seit
29. Mai 2009
Beiträge
81
Punkte für Reaktionen
2
Punkte
14
Okay das hört sich gut an. Mit key's Arbeite ich schon also fehlt nur doch die Einschränkung hab mir die Wiki mal durchgelesen werd aber irgendwie nicht schlau draus und in Google spuckt auch nicht das aus was ich suche.

steht zwar überall was man alles einstellen kann aber ich find nirgends eine Anleitung wohin mit den Einstellungen gibt es da eine config Datei oder sowas??
 

Whitesheep

Benutzer
Mitglied seit
29. Mai 2009
Beiträge
81
Punkte für Reaktionen
2
Punkte
14
ganz unten steht ja ein beispiel für svn

command="/opt/bin/svnserve -t -r /volume1/svn/repos/private --tunnel-user=svn",no-port-forwarding,no-agent-forwarding,no-pty ssh-rsa PUBLIC_KEY1_VALUE COMMENT
command="/opt/bin/svnserve -t -r /volume1/svn/repos/public --tunnel-user=svn",no-port-forwarding,no-agent-forwarding,no-pty ssh-rsa PUBLIC_KEY2_VALUE COMMENT

nur wo schreibt der das hin ??
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
wie wäre es mit authorized_keys? Um diese Datei geht es ja ;-) Nur wirst du den svnserve kaum brauchen. Das war nur ein Bsp wie man es machen kann
 

Whitesheep

Benutzer
Mitglied seit
29. Mai 2009
Beiträge
81
Punkte für Reaktionen
2
Punkte
14
Okay ich hab es jetzt soweit verstanden und auch schon getestet geht auch soweit.
Problem ist den Befehl den ich bei command="" angebe wird ja von der Maschine ausgeführt auf dem die authorized_keys liegt.
Ich möchte aber den Befehl von einem anderen System ausführen.

bsp.:
Auf Linux1 liegen die Original Daten und authorized_keys
Linux2 möchte die Daten haben und hat per Key Zugriff auf Linux1
Linux2 soll aber nur Berechtigungen für diesen einen Befehl oder für das ausführen von rsync haben

Der befehl von Linux2 sieht wie folgt aus:
rsync -a -e 'ssh -p 22 -i /root/.ssh/Linux1.identity' Linux1:/volume1/Data/* /Backup
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
dann erstell ein Zert für Linux2. Trag den PublicKey dann bei Linux1 in auth_keys ein, zusammen mit dem rsync Kommando inkl Parameter. Linux2 wird dann eine ssh Verbindung mit dem Zert öffnen und damit direkt auf Linux1 den rsync absetzen
 

Whitesheep

Benutzer
Mitglied seit
29. Mai 2009
Beiträge
81
Punkte für Reaktionen
2
Punkte
14
Problem ist wie oben beschrieben das dann Linux1 den rsync befehl ausführt damit bräuchte ich auch key's in die andere Richtung der rsync befehl soll aber von Linux2 ausgeführt werden.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat