fbpixel
Etiquetas:

El protocolo SSH (Secure Socket Shell) se utiliza ampliamente para conectarse a un servidor remoto o a una máquina conectada a una red. Permite intercambiar archivos y crear, modificar o ejecutar scripts en máquinas remotas.

SSH suele venir instalado de serie en las distribuciones de Linux o Windows.

Descripción del protocolo SSH

El protocolo SSH (Secure Shell) es un protocolo de comunicación criptográfica utilizado para establecer conexiones seguras y confidenciales entre dos sistemas informáticos a través de una red. Su principio se basa en la utilización de métodos de cifrado asimétricos y simétricos para proteger los datos que pasan entre sistemas. La autenticación de los usuarios se realiza generalmente mediante pares de claves criptográficas, compuestas por una clave pública y una clave privada, que garantizan la verificación segura de la identidad del usuario. La principal utilidad de SSH radica en su papel a la hora de proteger el acceso remoto a servidores, transferir archivos seguros y gestionar sistemas a distancia, ofreciendo una sólida protección frente a posibles amenazas, como los ataques de intermediario y la interceptación de datos sensibles.

Abrir una sesión SSH

Para conectarse a un dispositivo

ssh <host>@<serveur>

ejemplo para una raspberry pi

ssh pi@192.168.1.2

Una vez establecida la conexión, el monitor le pedirá la contraseña para acceder al terminal remoto.

raspberry-pi-ssh-connexion El protocolo SSH para conexiones remotas

Si su máquina remota lo permite, se puede utilizar la etiqueta -X para mostrar las ventanas en su máquina

ssh -X <host>@<serveur>

Copiar un archivo remoto utilizando el protocolo SSH

La commande à utiliser pour copier un fichier d’une machine distante à une autre est la commande scp

scp <source> <destination>

scp root@192.168.1.33:script.py C:\Users\ADMIN

Se solicitará una contraseña para validar la copia.

ssh-copy-distant-file El protocolo SSH para conexiones remotas

Iniciar sesión con una contraseña

En Linux, puede instalar y utilizar SSH

sudo apt-get install sshpass
sshpass -p {password} ssh {user}@{ipaddress}

En Windows, Putty puede encargarse de la gestión de contraseñas

Instale PuTTy y añada la carpeta ejecutable a la variable de entorno Path (C:³³ de programa³ PuTTy).

putty -ssh "root@192.168.1.32" -pw root #pour ouvrir une connexion en directe

Para enviar pedidos en directo, utilizamos plink

plink -ssh <username>@<host> -pw <password> <command>

Ejemplo

plink -ssh root@192.168.1.32 -pw root uname -a
ssh-cmd-passord-putty-plink El protocolo SSH para conexiones remotas

Uso de Python para enviar comandos SSH

Utilizamos la biblioteca de subprocesos para ejecutar comandos de terminal

import subprocess

subprocess.Popen(f"ssh {user}@{host} {cmd}", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()

Envío de comandos SSH que requieren contraseña a través de Python

python3 -m pip install paramiko
ssh = paramiko.SSHClient()
#ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #if missing
ssh.connect(server, username=username, password=password)
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command("uname -a")
print("connected via SSH")
print(ssh_stdout.read().decode())
ssh.close()
ssh-connexion-paramiko El protocolo SSH para conexiones remotas

Aplicaciones

Fuentes