Introducción
SSH (Secure Shell) es un protocolo de red que permite conexiones remotas seguras entre dos sistemas. Los administradores del sistema usan las utilidades SSH para administrar máquinas, copiar o mover archivos entre sistemas. Debido a que SSH transmite datos a través de canales encriptados, la seguridad es de alto nivel.
Este artículo lo guiará a través de los comandos SSH más populares . La lista también puede servir como una hoja de trucos y será útil la próxima vez que necesite completar una tarea.
Requisitos previos
- Un cliente SSH de su elección
- Un servidor SSH en la máquina remota
- La dirección IP o el nombre del servidor remoto
Cómo acceder a un servidor remoto
Para conectarse a una máquina remota, necesita su dirección IP o nombre. Cargue la terminal o cualquier cliente SSH y escriba ssh
seguido de la dirección IP:
ssh 192.168.56.101
o nombre:
ssh test.server.com
La primera vez que se conecte a un host, verá este mensaje:
Escriba sí y pulsa enter. Es posible que también deba ingresar su contraseña.
Especifique un nombre de usuario para la conexión SSH
SSH usa el usuario actual cuando accede a un servidor remoto. Para especificar un usuario para una conexión SSH, ejecute el comando en este formato:
ssh [email protected]_or_ip
Por ejemplo:
ssh [email protected]
Usar un número de puerto diferente para la conexión SSH
De manera predeterminada, el servidor SSH escucha una conexión en el puerto 22. Si se cambió la configuración del puerto en el archivo de configuración SSH, deberá especificar el puerto. De lo contrario, obtendrá este error:
Para conectarse a un host remoto con un número de puerto SSH personalizado, use -p
bandera. Por ejemplo:
ssh test.server.com -p 3322
Generar claves SSH usando SSH Keygen
Para mejorar la seguridad de las conexiones SSH, genere un par de claves con la utilidad keygen. El par consiste en una clave pública y privada. La clave pública se puede compartir, mientras que la clave privada debe permanecer segura.
Los pares de claves SSH se utilizan para autenticar automáticamente a los clientes en los servidores. Cuando crea un par de claves SSH, ya no es necesario ingresar una contraseña para acceder a un servidor.
En la terminal de la máquina host, use este comando para crear un par de claves:
ssh-keygen -t rsa
Para usar la configuración predeterminada, presione Entrar en las indicaciones para la ubicación del archivo y la frase de contraseña.
Copiar clave SSH pública
Para usar el par de claves para la autenticación SSH, deberá copiar la clave pública en un servidor. La clave es el archivo id_rsa.pub creado previamente con la utilidad SSH keygen.
Para copiar su clave a un servidor, ejecute este comando desde el cliente:
ssh-copy-id hostname_or_IP
También puede especificar un nombre de usuario si no desea utilizar el usuario actual.
Ingrese la contraseña para autenticarse cuando se le solicite. Después de esto, ya no necesitará usar la contraseña para conectarse al mismo servidor.
Copiar un archivo de forma remota a través de SSH con SCP
Puede copiar archivos de forma segura a través del protocolo SSH utilizando el SCP herramienta. La sintaxis básica es:
scp fileName [email protected]:/home/username/destination
Por ejemplo, para copiar un archivo sample3 a su escritorio en un servidor remoto con un nombre de usuario test , escribe:
scp sample3 [email protected]:/home/test/Desktop
La salida muestra un resumen de la operación.
Asegúrate de usar mayúsculas -P
bandera si necesita especificar el puerto.
Editar archivo de configuración SSH
Puede controlar cómo los usuarios remotos pueden acceder a un servidor a través de SSH. Edite la configuración en sshd_config
archivo para personalizar las opciones del servidor SSH. Asegúrese de editar solo las opciones con las que está familiarizado. Un servidor puede volverse inaccesible debido a una mala configuración.
Utilice el editor de su elección para editar el archivo. Necesitará permisos de superusuario para realizar cambios. En Linux, usamos vim :
En la línea de comando en un host remoto, escriba:
sudo vim /etc/ssh/sshd_config
Ingresa la contraseña de sudo y el shell abre el archivo en el editor que usaste.
Reiniciar servicio SSH
Cuando realice cambios en la configuración de SSH, deberá reiniciar el servicio en Linux.
Según la distribución de Linux, ejecute uno de los siguientes comandos en la máquina donde modificó la configuración:
sudo ssh service restart
o:
sudo sshd service restart
Finalmente, ingrese la contraseña para completar el proceso. Como resultado, la próxima sesión de SSH utilizará la nueva configuración.
Comandos SSH básicos
Trabajar en un servidor remoto usando SSH requiere conocer los comandos básicos de SSH. Utilice los comandos y las opciones de este artículo para administrar un host remoto. Tenga en cuenta que puede combinar las banderas para obtener el resultado que necesita.
Mostrar ruta del directorio de trabajo
Usa la pwd
Comando para mostrar la ruta del sistema de archivos.
El resultado muestra la ubicación del directorio en el que se encuentra.
Lista de archivos y directorios
Cambiar directorio
Para enumerar el contenido de una carpeta de trabajo actual, use el ls comando.
El shell mostrará los nombres de todos los directorios, archivos y enlaces. Para obtener más información, agregue una de las siguientes banderas:
-a
muestra los archivos ocultos de Linux y las entradas que comienzan con un punto.-l
muestra los detalles del archivo para el contenido del directorio. Por ejemplo, la salida incluye permisos, propiedad, fecha, etc.-s
enumera el tamaño de los archivos, en bloques. Agregue -h para mostrar el tamaño en una forma legible por humanos.
Para navegar a una carpeta específica, use el cd
comando y un nombre o ruta de un directorio.
cd Desktop/Downloads/Sample
Recuerde que los nombres distinguen entre mayúsculas y minúsculas. Usar cd
sin nombre o ruta para volver al directorio de inicio del usuario.
Útil cd
las opciones incluyen:
cd ..
vaya al directorio un nivel más alto que su ubicación actual.cd -
cambiar al directorio anterior.cd /
vaya al directorio raíz.
Copiar un archivo
Usa el cp
comando para copiar un archivo o directorio. Deberá incluir el nombre del archivo y la ubicación de destino.
cp fileName /directory/path/destination
Para copiar archivo1 desde Escritorio a Dir1 , escribe:
cp file1 Dir1
Para cambiar el nombre de file1 mientras lo copia a otro destino, use este formato:
cp file1 Dir1/Newfile1Name
Este comando copia file1 a Dir1 con el nombre que especifiques.
Para copiar un directorio y su contenido, use el indicador -r en este formato:
cp -r Directory1 NewLocation
Mover un archivo
El mv
El comando funciona de la misma manera que el comando de copia.
Por ejemplo, para mover un archivo a otra ubicación, escriba:
mv fileName directory/path/destination
Crear un archivo
El comando táctil le permite crear un nuevo archivo con cualquier extensión.
En la terminal, ingresa el siguiente comando:
touch fileName
Por ejemplo, para crear un system.log archivo, escriba:
touch system.log
Crear un Directorio
Para crear un directorio, use mkdir
dominio. Ingrese un nuevo nombre de directorio o ruta completa en este formato:
mkdir NewDirectoryName
O:
mkdir directory/path/NewDirectoryName
Eliminar un archivo o directorio
Para eliminar un archivo de Linux, use rm
en este formato:
rm fileName
Además, puede introducir una ruta completa:
rm /home/user/dir1/fileName
Para eliminar un directorio , agregue el -r
marca al comando rm.
Ver información de la red
Para ver el estado de todos los adaptadores de red, use el ifconfig
dominio. Además, cuando no usa ninguna opción con ifconfig, la salida muestra solo las interfaces activas.
Borrar la pantalla de la terminal
Para borrar el área de trabajo actual de su pantalla bash, escriba clear
en la concha Este comando borra una parte de la pantalla y desplaza hacia arriba la salida anterior.
Para eliminar la salida de la terminal por completo, use reset
comando.
Ejecutar un comando en un servidor remoto desde una computadora local
Este método no crea un nuevo shell. En su lugar, ejecuta un comando y devuelve al usuario al indicador local. Puede crear un archivo, copiar archivos o ejecutar cualquier otro comando SSH en este formato.
Para ejecutar un comando de forma remota desde la máquina local, agregue una instrucción al comando SSH. Por ejemplo, para eliminar un archivo, escriba:
ssh test.server.com rm ~/Desktop/Dir1/sample4
Ingrese la contraseña y el archivo en el servidor remoto se eliminará sin crear un nuevo shell.
Opciones de línea de comandos SSH
La herramienta SSH viene con muchos opcionales parámetros La siguiente tabla enumera las opciones SSH comunes y las descripciones correspondientes.
Opción SSH | Descripción |
Instruye a ssh para usar la versión 1 del protocolo | |
-2 | Instruye a ssh para usar la versión 2 del protocolo. |
-4 | Permite solo direcciones IPv4. |
-6 | Permite solo direcciones IPv6. |
-A | Habilita el reenvío de conexión del agente de autenticación. Utilice esta opción con precaución. |
-a | Deshabilita el reenvío de conexión del agente de autenticación. |
-b bind_address | Utilice esta opción en el host local con más de una dirección para establecer la dirección de origen de la conexión. |
-C | Habilita la compresión de datos para todos los archivos. Solo para ser utilizado con conexiones lentas. |
-c cipher_spec | Utilice para seleccionar una especificación de cifrado. Enumere los valores separados por una coma. |
-E nombre_archivo_de_registro | Adjunta registros de depuración a log_file en lugar de un error estándar. |
-f | Envía ssh al fondo, incluso antes de ingresar una contraseña o frase de contraseña. |
-g | Permite que los hosts remotos se conecten a los puertos reenviados en una máquina local. |
-q | Ejecuta ssh en modo silencioso. Suprime la mayoría de los mensajes de error o advertencia. |
-V | Muestra la versión de la herramienta ssh y sale. |
-v | Imprime mensajes de depuración para la conexión ssh. El modo detallado es útil para solucionar problemas de configuración. |
-X | Utilice esta opción para habilitar el reenvío X11. |
-x | Deshabilitar el reenvío X11. |