• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

SSH Zugriff mit Key: Probleme mit relativem Pfad

cino

Idared
Registriert
27.12.07
Beiträge
26
Hallo zusammen,

für einen Kunden habe ich ein ausführbares Script geschrieben, dass einen Tunnel zu seinem gesicherten Server über SSH aufbaut. Für die Verbindung ist ein Key notwending, der in einer separaten Datei gespeichert ist.
Code:
ssh -L 8180:172.120.155.140:80 [email protected] -i /Users/cino/Sites/Kunde/Login/privatekey.ssh
Zum Verständnis: Das Script selbst liegt im gleichen Ordner wie der Key, die Verbindung wird aufgebaut und der Server kann wie geplant über "localhost:8180" angesprochen werden.

Nun zum Problem: Ich möchte dem Kunden das Script als "Out-of-the-Box" Lösung anbieten; es wird an mehrere Mitarbeiter verteilt. Wenn diese das Script wie jetzt öffnen, wird es natürlich nicht funktionieren, da der Pfad zum Key absolut angegeben ist (und auf meine persönliche Ordnerstruktur zurückgreift).
Wie kann ich den Pfad/das Script so anpassen, dass die Pfadangabe relativ zum Script ist, so dass dieses auf jedem Rechner aufgerufen werden kann?

Wenn das läuft, möchte ich übrigens noch ein kleines Automator-Script anbieten, dass das SSH-Script ausführt und danach direkt den Browser mit dem localhost-Befehl öffnet. Das nur als Info.

Herzlichen Dank im Voraus,
cino
 
Hi.

Also entweder ich hab das Problem nicht verstanden oder es ist tatsächlich so einfach wie ich denke.
Wenn du deinen absoluten Pfad "/Users/cino/Sites/Kunde/Login/privatekey.ssh" einfach durch "./privatekey.ssh" ersetzt, sucht er im aktuellen Ordner nach der Datei.
Ich kann irgendwie aber noch nciht glauben, dass das das Problem ist :)
 
Das Problem hast du richtig erkannt. Das "./" habe ich auch schon versucht, weil mir diese Standardangabe am sinnvollsten schien. Wenn ich das Script dann allerdings öffne (Doppelklick), erhalte ich die Fehlermeldung
Code:
Warning: Identity file ./privatekey.ssh not accessible: No such file or directory.
Er findet die Datei also nicht.

Muss ich im Script vielleicht vorher "manuell" in den aktuellen Ordner wechseln?
 
Wenn ich mich richtig erinnere, wird der relative Pfad immer von dort aus bestimmt, wo du das Skript ausführst, nicht wo es dann tatsächlich liegt. Bist du beim Ausführen des Skripts also nicht in dessen Ordner, schlägt diese relative Angabe fehl.
Wenn du allerdings nicht im selben Ordner wie das Skript bist, kennst du ja dessen Pfad und könntest den selben Pfad dann auch für deinen Key angeben.

Beispiel:
1) Skript in /home/cino, key ebenso.
cd /home/cino; ./sshSkript.sh
Das sollte dann mit dem obigen relativen Pfad funktionieren.

2) Skript in /home/cino, key ebenso.
cd /; ./home/cino/sshSkript.sh
Das funktioniert dann mit deinem obigen Code nicht, weil er deinen key in / sucht, nicht in /home/cino. Hier kennst du allerdings den Pfad zu sshSkript, sonst könntest du es nicht ausführen, du könntest also in sshSkript.sh selbst den Pfad zum key auch angeben mit /home/cino/privatekey.ssh. Dass sich im Beispiel der relative Pfad mit einem absoluten deckt, ist Zufall. Du wirst später sicher etwas generischeres wählen wollen.

Ich lasse mich auch gerne auf elegantere Lösungen hinweisen :)
(ggf. im Skript selbst den Speicherort herausfinden und diesen dann nutzen, um direkt von dort aus ./privatekey.ssh aufzurufen)