Python中使用Paramiko模块进行SSH连接

2023-04-15 00:00:00 python 连接 模块

Paramiko是一款Python模块,它支持SSHv2协议。使用Paramiko可以轻松地实现SSH连接和文件传输。

下面是一个简单的示例代码,演示如何使用Paramiko连接到远程服务器:

import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('hostname', username='username', password='password')

stdin, stdout, stderr = ssh.exec_command('ls')
print(stdout.readlines())

ssh.close()

在这个示例中,我们首先通过实例化一个SSHClient对象来创建一个SSH连接。接着,我们设置了缺省的主机密钥策略(AutoAddPolicy),这样当我们第一次连接到某个主机时,Paramiko会将其添加到已知主机列表中。

然后,我们使用connect()方法连接到远程主机。在这个方法中,我们需要指定主机名、用户名和密码。一旦连接成功,我们就可以执行其他操作。

在上面的示例中,我们使用exec_command()方法在远程服务器上执行了一个命令(ls),并将结果打印到控制台上。

最后,我们使用close()方法关闭SSH连接。

需要注意的是,这个示例中我们只指定了密码进行验证。如果你需要使用其他验证方式(如公钥认证),你需要提供相应的参数,在connect()方法中进行设置。

另外,如果你需要上传或下载文件,你可以使用Paramiko提供的SFTPClient对象。下面是一个简单的示例:

import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('hostname', username='username', password='password')

sftp = ssh.open_sftp()
sftp.put('local_file_path', 'remote_file_path')
sftp.get('remote_file_path', 'local_file_path')

sftp.close()
ssh.close()

在这个示例中,我们使用open_sftp()方法创建了一个SFTPClient对象,并使用它上传和下载文件。需要注意的是,上传和下载文件的路径都是相对于远程服务器的。

总的来说,使用Paramiko可以让我们轻松地实现SSH连接和文件传输,是一款非常实用的Python模块。

相关文章