Wie man sich per SSH in ein bestimmtes Verzeichnis unter Linux einloggt
Warst du schon einmal in einer Situation, in der du per SSH zu einem entfernten Server verbinden und sofort in ein Verzeichnis wechseln wolltest? Ja? Dann bist du auf dem richtigen Weg! Dieses kurze Tutorial beschreibt, wie man direkt in ein bestimmtes Verzeichnis auf Linux per SSH gelangt. Das bedeutet, wir können beim Anmelden auf einem entfernten System über SSH automatisch in ein bestimmtes Verzeichnis wechseln. Nicht nur, dass man in ein bestimmtes Verzeichnis per SSH gelangt, es ist sogar möglich, sofort nach der Verbindung mit dem entfernten Server über SSH beliebige Befehle auszuführen.
Per SSH in ein bestimmtes Verzeichnis eines entfernten Linux-Systems einloggen
Bevor ich diese Methode kannte, habe ich normalerweise zuerst über SSH in das entfernte System eingeloggt mit dem Befehl:
$ ssh user@remote-systemUnd dann in ein Verzeichnis wie unten wechseln:
$ cd <some-directory>So wechsle ich in ein Verzeichnis auf einem entfernten System. Nicht mehr! Kein Bedarf mehr, zwei separate Befehle zu verwenden!!
Zum Beispiel erlaubt mir der folgende Befehl, per SSH in ein entferntes System (192.168.225.52) zu wechseln und automatisch in ein Verzeichnis namens "dir1" zu wechseln:
$ ssh -t ostechnix@192.168.225.52 'cd /home/ostechnix/dir1 ; bash'
Der obige Befehl wird sich per SSH in ein entferntes System (192.168.225.52) einloggen und sofort in ein Verzeichnis namens '/home/ostechnix/dir1' wechseln und dich schließlich in der Shell des entfernten Systems lassen.
Hier wird die -t-Option verwendet, um die Zuweisung eines Pseudo-Terminals zu erzwingen, was für eine interaktive Shell notwendig ist. Wenn Sie diese Option nicht angeben, erscheint keine Eingabeaufforderung. Und wenn Sie außerdem nicht " bash" am Ende des obigen Befehls hinzufügen, wird die Verbindung beendet und die Kontrolle an das lokale System zurückgegeben.
Hier ist die Beispielausgabe des oben genannten Befehls:
Per SSH in ein bestimmtes Verzeichnis eines entfernten Linux-Systems einloggen
Hier sind ein paar weitere Beispielbefehle, um per SSH in ein bestimmtes Verzeichnis zu wechseln:
$ ssh -t ostechnix@192.168.225.52 'cd /home/ostechnix/dir1 ; bash --login'
Hier setzt die --login-Flagge "bash" als Login-Shell.
Oder,
$ ssh -t ostechnix@192.168.225.52 'cd /home/ostechnix/dir1 ; exec bash'Oder,
$ ssh -t ostechnix@192.168.225.52 'cd /home/ostechnix/dir1 && exec bash -l'Hier setzt die -l-Option "bash" als Login-Shell.
In den obigen Beispielen habe ich bash ausdrücklich als Login-Shell angegeben. Denn ich weiß, dass Bash die Standard-Shell in meinem entfernten System ist. Wenn Sie den Shell-Typ auf dem entfernten System nicht kennen, verwenden Sie den folgenden Befehl:
$ ssh -t ostechnix@192.168.225.52 'cd /home/ostechnix/dir1 && exec $SHELL'Erstellen Sie ein Verzeichnis auf dem entfernten System und melden Sie sich automatisch per SSH darin an
Wenn Sie versuchen, sich per SSH in ein Verzeichnis einzuloggen, das im Remote-System nicht existiert, werden Sie nach erfolgreicher Authentifizierung die folgende Nachricht sehen:
bash: line 0: cd: /home/ostechnix/dir2: No such file or directoryWie Sie sehen können, ist das Verzeichnis mit dem Namen "dir2" im entfernten System nicht verfügbar. Wenn Sie ein Verzeichnis in einem entfernten System erstellen und automatisch per SSH in dieses Verzeichnis wechseln möchten, führen Sie einfach den folgenden Befehl von Ihrem lokalen System aus:
$ ssh -t ostechnix@192.168.225.52 'mkdir -p dir2 ; cd /home/ostechnix/dir2 ; bash --login'Erstellen Sie ein Verzeichnis in einem entfernten System und wechseln Sie automatisch per SSH hinein
Die Änderungen dauerhaft machen
Wenn Sie die oben genannten Befehle nicht jedes Mal manuell eingeben möchten, fügen Sie die Befehle, die Sie nach der Verbindung mit einem SSH-Server ausführen möchten, einfach in die ~/.bashrc-, ~/.bash_profile- oder ~/.profile-Dateien des entfernten Systems ein.
Bearbeite die bashrc-Datei:
$ nano ~/.bashrcFügen Sie den Befehl bzw. die Befehle einzeln hinzu. In meinem Fall füge ich die folgende Zeile hinzu:
cd /home/ostechnix/dir1 >& /dev/nullBearbeite die bashrc-Datei
Bitte beachten Sie, dass Sie diese Zeile in der .bash_profile- oder .bashrc- oder .profile-Datei des entfernten Systems hinzufügen sollten, nicht in der Ihres lokalen Systems. Drücken Sie Strg+O und ENTER, um zu speichern, und drücken Sie Strg+X, um die Datei zu schließen.
Führen Sie schließlich den folgenden Befehl aus, um die Änderungen zu aktualisieren:
$ source ~/.bashrcVon nun an wird jedes Mal, wenn Sie sich anmelden (entweder über SSH oder direkt), der Befehl cd ausgeführt und Sie gelangen automatisch in das Verzeichnis "/home/ostechnix/dir1".
Mit SSH in ein bestimmtes Verzeichnis unter Linux wechseln
Führe Befehle über SSH auf entfernten Linux-Systemen aus
Wie ich bereits gesagt habe, besteht dieser Trick nicht nur darin, nach dem Verbinden mit einem entfernten System in ein Verzeichnis zu wechseln. Sie können diese Methode auch verwenden, um andere Befehle auszuführen.
Zum Beispiel bringt Sie der folgende Befehl in das Verzeichnis '/home/ostechnix/dir1' und führt dann den Befehl 'uname -a' aus.
$ ssh -t ostechnix@192.168.225.52 'cd /home/ostechnix/dir1 && uname -a && exec $SHELL'Führe Befehle über SSH auf entfernten Linux-Systemen aus
Weitere Beispiele für die Ausführung von Befehlen über SSH auf entfernten Systemen werden im folgenden Leitfaden gegeben.
- Befehle auf entfernten Linux-Systemen über SSH ausführen
Ich hoffe, das hilft.
Verwandte Lektüre:
- Wie man in einem Befehl cd und ls verwendet
- Wie man cp oder mv und cd in einem Befehl verwendet
- SSH-Zugriff für einen bestimmten Benutzer oder eine bestimmte Gruppe in Linux erlauben oder verweigern




