GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo SSH en un directorio particular en Linux

¿Alguna vez ha estado en una situación en la que quería SSH a un servidor remoto e inmediatamente cd en un directorio? ¿Sí? Bueno, ¡estás en el camino correcto! Este breve tutorial describe cómo usar SSH directamente en un directorio particular en Linux. Significado:podemos cambiar automáticamente a un directorio en particular cuando iniciamos sesión en un sistema remoto a través de SSH. No solo SSH en un directorio específico, incluso es posible ejecutar cualquier comando inmediatamente después de conectarse al servidor remoto a través de SSH.

SSH en un directorio particular de un sistema Linux remoto

Antes de conocer este método, generalmente primero ingresaba SSH al sistema remoto remoto usando el comando:

$ ssh [email protected]

Y luego cd en un directorio como el siguiente:

$ cd <some-directory>

Así es como cambio a un directorio en un sistema remoto. ¡Ya no! ¡¡No es necesario usar dos comandos separados!!

Por ejemplo, el siguiente comando me permite SSH en un sistema remoto (192.168.225.52), y automáticamente cd en un directorio llamado "dir1":

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

El comando anterior conectará SSH a un sistema remoto (192.168.225.52) e inmediatamente cd a un directorio llamado '/home/ostechnix/dir1' directorio y finalmente lo dejo en el shell del sistema remoto.

Aquí, la -t flag se usa para forzar la asignación de pseudo-terminal, lo cual es necesario para un shell interactivo. Si no especifica este indicador, no aparecerá ningún aviso. Y también si no agregas " bash" al final del comando anterior, la conexión terminará y devolverá el control al sistema local.

Aquí está la salida de muestra del comando anterior:

Aquí hay algunos comandos de ejemplo más para SSH en un directorio en particular:

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

Aquí, el --login marca establece "bash" como shell de inicio de sesión.

O,

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

O,

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

Aquí, el -l marca establece "bash" como shell de inicio de sesión.

En los ejemplos anteriores, he mencionado explícitamente bash como shell de inicio de sesión. Porque sé que Bash es el shell predeterminado en mi sistema remoto. Si no conoce el tipo de shell en el sistema remoto, use el siguiente comando:

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

Cree un directorio en el sistema remoto y acceda automáticamente mediante SSH

Si intenta conectarse mediante SSH a un directorio que no existe en el sistema remoto, verá el siguiente mensaje después de una autenticación exitosa:

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

Como puede ver, el directorio llamado "dir2" no está disponible en el sistema remoto. Si desea crear un directorio en un sistema remoto y acceder automáticamente a él a través de SSH, simplemente ejecute el siguiente comando desde su sistema local:

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

Hacer que los cambios sean permanentes

Si no desea escribir los comandos anteriores manualmente cada vez, simplemente agregue los comandos que desea ejecutar después de conectarse a un servidor SSH en el ~/.bashrc del sistema remoto. o ~/.bash_profile o ~/.perfil archivos.

Editar bashrc archivo:

 $ nano ~/.bashrc

Agregue los comandos uno por uno. En mi caso, agrego la siguiente línea:

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

Tenga en cuenta que debe agregar esta línea en el .bash_profile del sistema remoto. o .bashrc o .perfil archivo, no en su sistema local. Presiona Ctrl+O y presiona ENTER para guardar y presiona Ctrl+X para cerrar el archivo.

Finalmente, ejecute el siguiente comando para actualizar los cambios:

 $ source ~/.bashrc

A partir de ahora, cada vez que inicie sesión (ya sea a través de SSH o directamente), se ejecutará el comando cd y aterrizará automáticamente en el directorio "/home/ostechnix/dir1".

Ejecute comandos a través de SSH en sistemas Linux remotos

Como ya dije, este truco no es solo para cd en el directorio después de conectarse a un sistema remoto. También puede usar este método para ejecutar otros comandos.

Por ejemplo, el siguiente comando lo llevará al directorio '/home/ostechnix/dir1' y luego ejecutará el comando 'uname -a'.

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

En la siguiente guía se ofrecen más ejemplos sobre la ejecución de comandos a través de SSH en sistemas remotos.

  • Ejecutar comandos en sistemas Linux remotos a través de SSH

Espero que esto ayude.

Lectura relacionada:

  • Cómo cd y ls en un solo comando
  • Cómo cp o mv y cd en un solo comando
  • Permitir o denegar el acceso SSH a un usuario o grupo en particular en Linux

Linux
  1. Cómo cambiar el puerto SSH en Linux

  2. Cómo cambiar el nombre de un directorio en Linux

  3. ¿Cómo SSH en un directorio específico?

  4. Cómo gzip un directorio en Linux

  5. Cómo obtener el tamaño del directorio en Linux

Cómo usar SSH en un contenedor Docker

Cómo SSH en su servidor Linux desde Windows

Cómo SSH al servidor a través de Linux

Cómo:Administración remota de FreeBSD

Cómo SSH en una máquina con Windows 10 desde Linux O Windows O en cualquier lugar

Cómo usar SSH para conectarse a un servidor remoto en Linux o Windows