El protocolo Secure Shell es una forma común de conectarse con una máquina remota a través de aplicaciones cliente / servidor. Hace uso de un conjunto de herramientas como ssh, scp y sftp, entre muchos otros, para garantizar un proceso de autenticación seguro y una comunicación cifrada que sigue. Debido a esto, estas herramientas reemplazan a otros conjuntos de herramientas de ejecución de comandos remotos más antiguos, como telnet, rcp y rlogin.
En esta guía, aprenderá cómo instalar y habilitar los servicios de servidor / cliente OpenSSH en su máquina. También cubre todos los comandos necesarios (herramientas SSH) para acceder y administrar de forma remota los sistemas y transferir archivos entre ellos.
Introducción a SSH
De forma predeterminada, la mayoría de los sistemas Linux incluyen las aplicaciones de servidor y cliente ssh. Los paquetes que incluyen herramientas ssh en las distribuciones RHEL y Fedora son openssh, openssh-server y openssh-client. Utilizar el grep comando para buscar herramientas ssh de la lista instalada:
lista de yum instalada | grep openssh
Mientras que Ubuntu solo incluye un paquete openssh-client que también contiene un paquete openssh. Use el comando grep para enumerar los paquetes openssh en Ubuntu, de la siguiente manera:
sudo dpkg --list | grep openssh
sudo apt-get install openssh-server
Iniciar / habilitar el servicio SSH
La gestión del servicio openssh puede variar de una distribución a otra y, independientemente de las configuraciones predeterminadas, no se inicia automáticamente. Utilice el siguiente conjunto de comandos para asegurarse de que el servicio esté funcionando en su máquina Linux:
systemctl status sshd.service # para Fedora y RHEL
systemctl status ssh # para Ubuntu
Si no se está ejecutando, verifique el estado del servicio de la siguiente manera:
systemctl start sshd.service # para Fedora y RHEL
systemctl ssh start # para Ubuntu
Para iniciar el servidor openssh tan pronto como se inicie el sistema:
systemctl enable sshd.service
systemctl ssh enable
Entre muchas otras herramientas para utilizar Protocolo SSH para el acceso remoto al sistema Linux, los más utilizados son el comando ssh para código remoto ejecución e inicio de sesión, donde scp y rsync son útiles para copiar uno o más archivos entre el cliente y servidor.
La sección cubre detalles en profundidad de los comandos discutidos anteriormente para una administración remota eficiente.
Inicio de sesión remoto
SSH es el comando que utilizará con más frecuencia para la configuración remota de su servidor Linux que ejecuta el servicio sshd. Utilice el comando ssh para verificar si puede iniciar sesión en su servidor Linux para ejecutar el comando.
Puede utilizar otra máquina Linux para iniciar sesión en su servidor, o puede hacerse una idea simulándola en su localhost como sigue:
Para iniciar sesión remotamente en una cuenta de Ubuntu en X.X.X.X (donde X.X.X.X es la dirección IP del dispositivo remoto):
ssh [email protected]
Para inicio de sesión remoto como usuario local:
ssh localhost
Si está iniciando sesión por primera vez en el servidor remoto, se le pedirá la confirmación para conectarse con el sistema, ingrese sí y escriba la contraseña de la cuenta de usuario.
Después de iniciar sesión, puede continuar con la ejecución del comando remoto, ya que es similar al inicio de sesión normal, con la única diferencia de que la comunicación remota está encriptada.
Una vez hecho esto, escriba el Salida comando para terminar la sesión y regresar a su sistema local. Si no cierra el shell remoto, el ~. Las teclas también realizan una tarea similar y muestran 'Conexión a X.X.X.X cerrada'.
Ejecución remota
El comando ssh permite ejecutar comandos en el sistema remoto y devuelve la salida en la máquina local. Por ejemplo,
El siguiente comando se ejecuta como usuario ubuntu en el servidor remoto y devuelve el nombre de host:
ssh [email protected] nombre de host
Para ejecutar un comando que incluye opciones o banderas, escríbalo entre comillas dobles de la siguiente manera:
ssh [email protected] "cat / tmp / new_file"
El comando anterior devuelve el contenido del archivo anterior en su pantalla local.
También puede ejecutar varios comandos sin volver a conectarse cada vez habilitando el reenvío X11 en su servidor. Abre el sshd_config archivo dentro /etc/ssh directorio y establecer Reenvío X11 a sí como sigue:
Ahora ejecute los comandos de la siguiente manera:
ssh -X [email protected] nombre de host & cat / tmp / new_file / & exit
Copia de archivo a través de scp y rsync
El scp mando le permite transferir / copiar archivos de forma remota al sistema local y viceversa. Su funcionalidad es similar al comando rcp pero con comunicación encriptada RSA. A continuación se presentan algunos ejemplos.
Copia el Archivo desde el /etc/demo directorio de la máquina remota a su /tmp carpeta de la siguiente manera:
scp [email protected]: / home / ubuntu / demo / file / tmp
Esto también permite la copia recursiva, lo que significa que puede proporcionar el comando con un directorio, y copia todos los archivos / carpetas en la jerarquía a otro directorio local.
scp -r localhost: / home / ubuntu / / tmp
También puede utilizar el comando scp para realizar copias de seguridad de archivos y directorios, pero rsync es una mejor utilidad de copia de seguridad por varias razones:
- scp tiene una incapacidad para retener los permisos del archivo / directorio y la hora / fecha.
- Tampoco puede identificar archivos y directorios ya copiados.
Ahora enumere el contenido de los directorios anteriores para ver los permisos del archivo y la hora de creación, de la siguiente manera:
ls -l / etc / demo / tmp / demo
Repita el comando scp anterior y vuelva a enumerar los directorios para verificar si reemplaza el archivo / directorios ya copiados de su marca de tiempo:
Relacionado:Copie archivos de forma segura en Linux con el comando Scp
El -p bandera para el comando scp puede ayudar a preservar la marca de tiempo o los permisos de escritura, pero aún reemplaza los archivos ya copiados. Para superar estas deficiencias, utilice rsync como herramienta de respaldo. Elimine los archivos primero en el /tmp directorio para continuar con el ejemplo siguiente. Utilice el comando rsync con el -a bandera para archivo recursivo y el -v opción para verbose para copiar el /home/ubuntu/demo archivos al /tmp directorio, de la siguiente manera:
rsync -av [email protected]: / home / ubuntu / demo / tmp
Enumerar la /tmp directorio para observar cómo conserva la hora de creación del archivo o directorio.
Por último, vuelva a ejecutar el rsync comando para verificar que no copia ningún archivo.
Conociendo SSH
El artículo es una guía del protocolo más utilizado para la gestión remota de servidores Linux. Mostramos cómo usar los comandos SSH más importantes con algunos consejos y trucos para facilitar la tarea de copia y administración de archivos.
Comenzar a comprender los comandos / herramientas SSH y su funcionalidad puede cambiar su visión de la administración del sistema / servidor, ya que desbloquea las capacidades no solo de SSH sino también de la terminal de Linux. Es una herramienta poderosa que ofrece una seguridad considerable, junto con una funcionalidad adicional demasiado avanzada para cubrirla en una sola guía.
Aprenda a ahorrar tiempo administrando servidores remotos con estos comandos SSH y Linux.
Leer siguiente
- Linux
- SSH
- Acceso remoto
Rumaisa es escritora autónoma en MUO. Ha recorrido un largo camino desde una matemática hasta una entusiasta de la seguridad de la información y está trabajando como analista de SOC. Sus intereses incluyen leer y escribir sobre nuevas tecnologías, distribuciones de Linux y cualquier tema relacionado con la seguridad de la información.
Suscríbete a nuestro boletín
¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!
Haga clic aquí para suscribirse