SSH usando Python
-
Use a biblioteca
paramiko
em Python para criar conexões SSH e executar comandos -
Use o módulo
subprocess
para criar conexões SSH e executar comandos
SSH (significa Secure Socket Shell
) é um protocolo de rede altamente usado para serviços de comunicação criptografados seguros em uma rede desconhecida e insegura. Ele nos permite enviar comandos entre dois dispositivos em uma rede remotamente e tem muitos aplicativos.
Python possui módulos disponíveis que permitem tal execução SSH. Este tutorial irá discutir como executar comandos shell para um dispositivo remoto após proteger a conexão SSH.
Use a biblioteca paramiko
em Python para criar conexões SSH e executar comandos
O módulo paramiko
é freqüentemente usado para implementar protocolos SSH em Python. Ele permite a comunicação do lado do servidor e do cliente.
Verifique o código abaixo para executar comandos shell em um dispositivo remoto usando este módulo.
ssh = paramiko.SSHClient()
ssh.connect(server, username=username, password=password)
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command(cmd_to_execute)
A função SSHClient()
especifica uma sessão de servidor SSH. Conectamos ao dispositivo usando os detalhes de autenticação adequados na função conectar
. Os comandos necessários podem ser executados neste dispositivo usando a função exec_command()
.
Outro módulo chamado spur
é derivado deste módulo, mas tem uma interface um pouco melhor.
Use o módulo subprocess
para criar conexões SSH e executar comandos
A função check_output()
do módulo subprocess
pode ser usada para executar comandos passados a ele, e a função retorna a saída desse comando. Podemos criar conexões SSH sem senha com esta função para executar os comandos necessários.
O código a seguir mostra um exemplo disso.
subprocess.check_output(["ssh", "my_server", "echo /*/"])
Outro método que pode ser usado a partir deste módulo é o Popen()
. É semelhante à função os.Popen()
do módulo os
para executar comandos e programas externos. Neste módulo, o Popen
é uma classe e não um método. É um pouco complicado usar isso devido a vários parâmetros que precisam ser especificados junto com o comando necessário. Ele combina todas as 4 funções os.Popen()
em uma. Ele também executa o comando como um processo separado. Podemos usá-lo para criar conexões SSH e executar comandos, conforme mostrado abaixo.
subprocess.Popen(
"ssh {user}@{host} {cmd}".format(user=user, host=host, cmd="ls -l"),
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
).communicate()
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn