GNU/Linux >> Tutoriels Linux >  >> Linux

Comment SSH dans un répertoire particulier sous Linux

Avez-vous déjà été dans une situation où vous vouliez vous connecter en SSH à un serveur distant et immédiatement accéder à un répertoire ? Oui? Eh bien, vous êtes sur la bonne voie ! Ce bref tutoriel décrit comment accéder directement à SSH dans un répertoire particulier sous Linux. Signification - nous pouvons automatiquement passer à un répertoire particulier lors de la connexion à un système distant via SSH. Pas seulement SSH dans un répertoire spécifique, il est même possible d'exécuter n'importe quelle commande immédiatement après la connexion au serveur distant via SSH.

SSH dans un répertoire particulier d'un système Linux distant

Avant de connaître cette méthode, je commençais généralement par SSH dans le système distant à l'aide de la commande :

$ ssh [email protected]

Et puis cd dans un répertoire comme ci-dessous :

$ cd <some-directory>

C'est ainsi que je change dans un répertoire dans un système distant. Pas plus! Pas besoin d'utiliser deux commandes distinctes !!

Par exemple, la commande suivante me permet de me connecter en SSH à un système distant (192.168.225.52), et automatiquement cd dans un répertoire appelé "dir1":

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

La commande ci-dessus sera SSH dans un système distant (192.168.225.52) et immédiatement cd dans un répertoire nommé '/home/ostechnix/dir1' répertoire et vous laisse finalement au shell du système distant.

Ici, le -t flag est utilisé pour forcer l'allocation de pseudo-terminal, ce qui est nécessaire pour un shell interactif. Si vous ne spécifiez pas cet indicateur, aucune invite n'apparaîtra. Et aussi si vous n'ajoutez pas " bash" à la fin de la commande ci-dessus, la connexion sera interrompue et rendra le contrôle au système local.

Voici l'exemple de sortie de la commande ci-dessus :

Voici quelques exemples de commandes supplémentaires pour SSH dans un répertoire particulier :

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

Ici, le --login flag définit "bash" comme shell de connexion.

Ou,

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

Ou,

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

Ici, le -l flag définit "bash" comme shell de connexion.

Dans les exemples ci-dessus, j'ai explicitement mentionné bash comme shell de connexion. Parce que je sais que Bash est le shell par défaut de mon système distant. Si vous ne connaissez pas le type de shell sur le système distant, utilisez la commande suivante :

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

Créer un répertoire sur le système distant et s'y connecter automatiquement en SSH

Si vous essayez de vous connecter en SSH à un répertoire qui n'existe pas sur le système distant, vous verrez le message suivant une fois l'authentification réussie :

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

Comme vous pouvez le voir, le répertoire nommé "dir2" n'est pas disponible dans le système distant. Si vous souhaitez créer un répertoire dans un système distant et y accéder automatiquement via SSH, exécutez simplement la commande suivante depuis votre système local :

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

Rendre les modifications permanentes

Si vous ne souhaitez pas saisir les commandes ci-dessus manuellement à chaque fois, ajoutez simplement la ou les commandes que vous souhaitez exécuter après vous être connecté à un serveur SSH sur le système distant ~/.bashrc ou ~/.bash_profile ou ~/.profile fichiers.

Modifier bashrc fichier :

 $ nano ~/.bashrc

Ajoutez la ou les commandes une par une. Dans mon cas, j'ajoute la ligne suivante :

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

Veuillez noter que vous devez ajouter cette ligne sur le .bash_profile du système distant ou .bashrc ou .profile fichier, pas dans votre système local. Appuyez sur Ctrl+O et appuyez sur ENTER pour enregistrer et appuyez sur Ctrl+X pour fermer le fichier.

Enfin, exécutez la commande suivante pour mettre à jour les modifications :

 $ source ~/.bashrc

À partir de maintenant, chaque fois que vous vous connecterez (via SSH ou directement), la commande cd s'exécutera et vous atterrirez automatiquement dans le répertoire "/home/ostechnix/dir1".

Exécuter des commandes via SSH sur des systèmes Linux distants

Comme je l'ai déjà dit, cette astuce ne consiste pas seulement à cd dans le répertoire après la connexion à un système distant. Vous pouvez également utiliser cette méthode pour exécuter d'autres commandes également.

Par exemple, la commande suivante vous amènera dans le répertoire '/home/ostechnix/dir1' puis exécutera la commande 'uname -a'.

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

D'autres exemples d'exécution de commandes via SSH sur des systèmes distants sont donnés dans le guide suivant.

  • Exécuter des commandes sur des systèmes Linux distants via SSH

J'espère que cela vous aidera.

Lire connexe :

  • Comment cd et ls en une seule commande
  • Comment cp ou mv et cd en une seule commande
  • Autoriser ou refuser l'accès SSH à un utilisateur ou à un groupe particulier sous Linux

Linux
  1. Comment changer le port SSH sous Linux

  2. Comment renommer un répertoire sous Linux

  3. Comment Ssh dans un répertoire spécifique ?

  4. Comment compresser un répertoire sous Linux

  5. Comment obtenir la taille du répertoire sous Linux

Comment se connecter en SSH à un conteneur Docker

Comment se connecter en SSH à votre serveur Linux à partir de Windows

Comment SSH au serveur via Linux

Comment :Administration à distance de FreeBSD

Comment se connecter en SSH à une machine Windows 10 depuis Linux OU Windows OU n'importe où

Comment utiliser SSH pour se connecter à un serveur distant sous Linux ou Windows