fbpixel
Etiquetas:

O protocolo SSH (Secure Socket Shell) é amplamente utilizado para estabelecer ligação a um servidor remoto ou a uma máquina ligada a uma rede. Permite a troca de ficheiros e a criação, modificação ou execução de scripts em máquinas remotas.

O SSH é geralmente instalado como padrão em distribuições Linux ou Windows.

Descrição do protocolo SSH

O protocolo SSH (Secure Shell) é um protocolo de comunicação criptográfico utilizado para estabelecer ligações seguras e confidenciais entre dois sistemas informáticos através de uma rede. O seu princípio baseia-se na utilização de métodos de cifragem assimétricos e simétricos para proteger os dados que passam entre sistemas. Os utilizadores são geralmente autenticados através de pares de chaves criptográficas, constituídos por uma chave pública e uma chave privada, que garantem a verificação segura da identidade do utilizador. A principal utilidade do SSH reside no seu papel na segurança do acesso remoto a servidores, na transferência de ficheiros seguros e na gestão de sistemas à distância, oferecendo uma proteção robusta contra potenciais ameaças, incluindo ataques man-in-the-middle e interceção de dados sensíveis.

Abrir uma sessão SSH

Para ligar a um dispositivo

ssh <host>@<serveur>

exemplo para um raspberry pi

ssh pi@192.168.1.2

Uma vez estabelecida a ligação, o monitor pedir-lhe-á a palavra-passe para aceder ao terminal remoto.

raspberry-pi-ssh-connexion O protocolo SSH para ligações remotas

Se a sua máquina remota o permitir, a etiqueta -X pode ser usada para mostrar as janelas na sua máquina

ssh -X <host>@<serveur>

Copiar um ficheiro remoto utilizando o 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

Será pedida uma palavra-passe para validar a cópia.

ssh-copy-distant-file O protocolo SSH para ligações remotas

Iniciar sessão com uma palavra-passe

No Linux, pode instalar e utilizar o SSH

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

No Windows, o Putty pode tratar da gestão de palavras-passe

Instale o PuTTy e adicione a pasta executável à variável de ambiente Path (C:\Program Files\PuTTY)

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

Para enviar encomendas em direto, utilizamos o plink

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

Exemplo

plink -ssh root@192.168.1.32 -pw root uname -a
ssh-cmd-passord-putty-plink O protocolo SSH para ligações remotas

Usando Python para enviar comandos SSH

Utilizamos a biblioteca de subprocessos para executar comandos de terminal

import subprocess

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

Enviando comandos SSH que requerem uma senha via 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 O protocolo SSH para ligações remotas

Aplicações

Fontes