关于“python采用paramiko远程执行命令及报错解决”的完整攻略,我将为您提供以下内容:
什么是paramiko?
Paramiko是一款用于Python编程语言进行SSH远程管理的模块。通过Paramiko,我们可以建立SSH连接、上传/下载文件、调用远程命令等等。
如何使用paramiko执行远程命令
- 下载并安装paramiko模块
pip install paramiko
- 使用paramiko建立SSH连接
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='your_host', port=22, username='your_user', password='your_password')
其中,hostname
代表要连接的主机地址,port
代表连接的端口号,username
代表登录的用户名,password
代表登录的密码。
- 执行远程命令
stdin, stdout, stderr = ssh.exec_command('command')
print(stdout.read())
其中,command
代表要执行的远程命令。
- 关闭SSH连接
ssh.close()
报错及解决方案
在使用paramiko模块建立SSH连接、执行远程命令的过程中,有可能会遇到一些报错问题,下面将为您介绍其中三个常见的报错及解决方案。
Bypassing UnknownHostKey Error
如果在建立SSH连接时出现了“UnknownHostKey Error”,可以采取下面的方案绕过:
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
AuthenticationException: Authentication failed
如果在建立SSH连接时出现了“Authentication failed”的报错,可能是由于用户名或密码输入有误,可以检查一下是否输入正确。
socket.error: [Errno 8] nodename nor servname provided, or not known
如果在建立SSH连接时出现了“nodename nor servname provided, or not known”的报错,可能是由于主机名输入有误或无法解析,可以尝试修改主机名或检查DNS配置。
示例
下面是两个示例说明:
示例一:执行远程命令
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='your_host', port=22, username='your_user', password='your_password')
stdin, stdout, stderr = ssh.exec_command('ls')
print(stdout.read())
ssh.close()
在上述示例中,连接到指定的主机后,通过ls
命令打印出该主机上的文件列表。
示例二:上传文件
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='your_host', port=22, username='your_user', password='your_password')
sftp = ssh.open_sftp()
sftp.put(local_filepath, remote_filepath)
ssh.close()
在上述示例中,将本地文件上传到指定的远程主机上。其中,local_filepath
是本地文件路径,remote_filepath
是远程文件路径。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 采用paramiko 远程执行命令及报错解决 - Python技术站