PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SSH automatisch in ein Verzeichnis wechseln



einBot
28.11.08, 12:41
Hallo!,

ich habe von mehreren Kunden SSH-Daten und ein Pfad für ein Verzeichnis in dem für mich die relevanten Daten liegen. Ich hab mir eine kleine Verwaltung programmiert, in welcher ich die Daten abgelegt habe und mir nun automatisch einen SSH-String erstellt, welchen ich einfach in die Konsole pasten kann, z.b.: ssh user@server.de/

ich möchte nun, in diesen String auch noch aufnehmen dass er z.b. automatisch in das Verzeichnis /var/www wechselt (also z.b. ssh user@server.de:/var/www), wie ist das möglich?

Hab nach etwas googlen etwas gefunden wie remote-command-execution, aber danach loggt er mich wieder aus.


Für jedes Post dankbar!

P.s: gibt es vllt auch einen workaround auch gleich noch das Passwort mitzugeben?

marce
28.11.08, 12:50
Verzeichnis: .login, .profile, $HOME entsprechend setzen

kein Passwort: ssh-keys verwenden.

heatwalker
28.11.08, 12:54
Schau dir mal

man ssh_config
an.

Du kannst User bezogene Config-Files einrichten und dort die Variable

LocalCommand cd /var/www/...
einrichten.

MiGo
28.11.08, 12:57
ich möchte nun, in diesen String auch noch aufnehmen dass er z.b. automatisch in das Verzeichnis /var/www wechselt (also z.b. ssh user@server.de:/var/www), wie ist das möglich?
Meines Wissens gar nicht. Du könntest allerdings einen passenden cd-Befehl in die .bashrc des Zielsystems schreiben.

P.s: gibt es vllt auch einen workaround auch gleich noch das Passwort mitzugeben?
Keinen einfachen. Du kannst - wenn du ssh einige Umgebungsvariablen passend setzt, ein Script zur Passwortausgabe an SSH verwenden (http://tlug.dnho.net/?q=passwordless_ssh) - dann stehen halt ssh-Passwörter im Klartext auf der Platte...
Nimm lieber public key-Authentifizierung, das ist auch automatisch und sicher.

einBot
02.12.08, 14:53
Danke für die Antworten!

Wegen des Verzeichniswechsels: werde ich wohl bleiben lassen, will ungern auf Kundenseite Änderungen vornehmen - seien sie noch so gering.

thecarpy
07.12.08, 22:27
aber bei Openssh melden, dass das ein cooles Feature sein würde!

kiker99
08.12.08, 02:08
Hallo,

was du willst ist kein Problem mit expect. Kannst du so machen:



#!/usr/bin/expect -f
set timeout -1
spawn ssh user@host
match_max 100000
expect "*?assword:*"
send -- "geheim\r"
expect -re ".+@.+\\s+.+\\](?:#|\\$)"
send -- "cd /usr\r"
interact


Anzupassen sind:
=> user / host
=> "geheim" -> richtiges passwort ;)
=> /usr -> gew. Pfad

Viel Spaß, Andre