GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So führen Sie SSH in ein bestimmtes Verzeichnis unter Linux aus

Waren Sie schon einmal in einer Situation, in der Sie per SSH auf einen Remote-Server zugreifen und sofort in ein Verzeichnis wechseln wollten? Ja? Nun, Sie sind auf dem richtigen Weg! Dieses kurze Tutorial beschreibt, wie Sie SSH direkt in ein bestimmtes Verzeichnis unter Linux eingeben. Bedeutung - wir können automatisch in ein bestimmtes Verzeichnis wechseln, wenn wir uns über SSH bei einem Remote-System anmelden. Nicht nur SSH in ein bestimmtes Verzeichnis, es ist sogar möglich, jeden Befehl sofort direkt nach der Verbindung mit dem Remote-Server über SSH auszuführen.

SSH in ein bestimmtes Verzeichnis eines Remote-Linux-Systems

Bevor ich diese Methode kannte, habe ich normalerweise zuerst eine SSH-Verbindung zum Remote-Remote-System mit dem Befehl:

hergestellt
$ ssh [email protected]

Und dann cd in ein Verzeichnis wie unten:

$ cd <some-directory>

So wechsle ich in ein Verzeichnis in einem entfernten System. Nicht mehr! Es müssen keine zwei separaten Befehle verwendet werden!!

Zum Beispiel erlaubt mir der folgende Befehl SSH in ein entferntes System (192.168.225.52) und automatisch in ein Verzeichnis namens „dir1“ zu wechseln:

$ ssh -t [email protected] 'cd /home/ostechnix/dir1 ; bash'

Der obige Befehl führt SSH in ein Remote-System (192.168.225.52) und sofort in ein Verzeichnis mit dem Namen '/home/ostechnix/dir1' Verzeichnis und verlassen Sie schließlich die Shell des entfernten Systems.

Hier das -t flag wird verwendet, um eine Pseudo-Terminal-Zuordnung zu erzwingen, die für eine interaktive Shell erforderlich ist. Wenn Sie dieses Flag nicht angeben, wird keine Eingabeaufforderung angezeigt. Und auch, wenn Sie "bash" nicht hinzufügen Am Ende des obigen Befehls wird die Verbindung beendet und die Kontrolle an das lokale System zurückgegeben.

Hier ist die Beispielausgabe des obigen Befehls:

Hier sind ein paar weitere Beispielbefehle für SSH in ein bestimmtes Verzeichnis:

$ ssh -t [email protected] 'cd /home/ostechnix/dir1 ; bash --login'

Hier das --login Flag setzt "bash" als Login-Shell.

Oder,

$ ssh -t [email protected] 'cd /home/ostechnix/dir1 ; exec bash'

Oder,

$ ssh -t [email protected] 'cd /home/ostechnix/dir1 && exec bash -l'

Hier das -l Flag setzt "bash" als Login-Shell.

In den obigen Beispielen habe ich ausdrücklich bash erwähnt als Login-Shell. Weil ich weiß, dass Bash die Standard-Shell in meinem Remote-System ist. Wenn Sie den Shell-Typ auf dem Remote-System nicht kennen, verwenden Sie den folgenden Befehl:

$ ssh -t [email protected] 'cd /home/ostechnix/dir1 && exec $SHELL'

Erstellen Sie ein Verzeichnis auf einem Remote-System und verbinden Sie sich automatisch mit SSH

Wenn Sie versuchen, per SSH in ein Verzeichnis zu gelangen, das im Remote-System nicht existiert, sehen Sie nach erfolgreicher Authentifizierung die folgende Meldung:

bash: line 0: cd: /home/ostechnix/dir2: No such file or directory

Wie Sie sehen können, ist das Verzeichnis mit dem Namen "dir2" im Remote-System nicht verfügbar. Wenn Sie ein Verzeichnis in einem Remote-System erstellen und automatisch über SSH in dieses Verzeichnis wechseln möchten, führen Sie einfach den folgenden Befehl von Ihrem lokalen System aus:

$ ssh -t [email protected] 'mkdir -p dir2 ; cd /home/ostechnix/dir2 ; bash --login'

Änderungen dauerhaft machen

Wenn Sie die obigen Befehle nicht jedes Mal manuell eingeben möchten, fügen Sie einfach die Befehle hinzu, die Sie ausführen möchten, nachdem Sie sich mit einem SSH-Server auf der ~/.bashrc des Remote-Systems verbunden haben oder ~/.bash_profile oder ~/.profile Dateien.

Bearbeiten Sie bashrc Datei:

 $ nano ~/.bashrc

Fügen Sie die Befehle einzeln hinzu. In meinem Fall füge ich die folgende Zeile hinzu:

cd /home/ostechnix/dir1 >& /dev/null

Bitte beachten Sie, dass Sie diese Zeile zum .bash_profile des Remote-Systems hinzufügen sollten oder .bashrc oder .profil Datei, nicht in Ihrem lokalen System. Drücken Sie Strg+O und drücken Sie ENTER zum Speichern und drücken Sie Strg+X um die Datei zu schließen.

Führen Sie abschließend den folgenden Befehl aus, um die Änderungen zu aktualisieren:

 $ source ~/.bashrc

Von nun an wird bei jeder Anmeldung (entweder über SSH oder direkt) der cd-Befehl ausgeführt und Sie landen automatisch im Verzeichnis "/home/ostechnix/dir1".

Befehle über SSH auf Remote-Linux-Systemen ausführen

Wie ich bereits sagte, besteht dieser Trick nicht nur darin, nach dem Verbinden mit einem Remote-System in das Verzeichnis zu wechseln. Sie können diese Methode auch verwenden, um andere Befehle auszuführen.

Der folgende Befehl bringt Sie beispielsweise in das Verzeichnis „/home/ostechnix/dir1“ und führt dann den Befehl „uname -a“ aus.

$ ssh -t [email protected] 'cd /home/ostechnix/dir1 && uname -a && exec $SHELL'

Weitere Beispiele zum Ausführen von Befehlen über SSH auf entfernten Systemen finden Sie in der folgenden Anleitung.

  • Befehle auf Remote-Linux-Systemen über SSH ausführen

Hoffe das hilft.

Verwandte Lektüre:

  • How To cd und ls in einem Befehl
  • Wie man cp oder mv und cd in einem Befehl erstellt
  • SSH-Zugriff für einen bestimmten Benutzer oder eine bestimmte Gruppe in Linux zulassen oder verweigern

Linux
  1. So ändern Sie den SSH-Port unter Linux

  2. So benennen Sie ein Verzeichnis unter Linux um

  3. Wie man in ein bestimmtes Verzeichnis ssh?

  4. Wie man ein Verzeichnis unter Linux gzippt

  5. So erhalten Sie die Verzeichnisgröße in Linux

So führen Sie SSH in einen Docker-Container ein

Wie Sie von Windows aus SSH in Ihren Linux-Server einbinden

So führen Sie SSH zum Server über Linux

Gewusst wie:FreeBSD-Fernverwaltung

Wie man SSH in einen Windows 10-Rechner von Linux ODER Windows ODER überall her einfügt

So verwenden Sie SSH, um eine Verbindung zu einem Remote-Server unter Linux oder Windows herzustellen