"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso automatizar comandos SSH em Python?

Como posso automatizar comandos SSH em Python?

Publicado em 2024-11-25
Navegar:850

How Can I Automate SSH Commands in Python?

Automatizando comandos por SSH com Python

Ao automatizar tarefas de linha de comando em Python, usar subprocess.call() é uma abordagem comum. No entanto, para comandos de máquina remota que requerem login SSH, este método é insuficiente.

Automatizando comandos SSH em Python

Para automatizar comandos SSH em Python, um módulo recomendado é paramico. Ele fornece uma interface para estabelecer conexões SSH e executar comandos com segurança.

Aqui está um exemplo usando paramiko:

import paramiko

ssh = paramiko.SSHClient()
ssh.connect(server, username=username, password=password)
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command(cmd_to_execute)

Isso estabelece uma conexão SSH com um servidor remoto, especificando o endereço do servidor, nome de usuário e senha. Posteriormente, o método exec_command() executa o comando desejado, capturando saída padrão e fluxos de erro.

No caso de autenticação de chave SSH, o seguinte trecho de código pode ser usado:

import paramiko

k = paramiko.RSAKey.from_private_key_file(keyfilename)
# OR k = paramiko.DSSKey.from_private_key_file(keyfilename)

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=host, username=user, pkey=k)

Ao especificar o nome do arquivo-chave que contém a chave privada, este código inicia uma conexão SSH usando autenticação baseada em chave.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3