paramiko:ssh服务

paramiko:ssh服务

paramiko是一个提供远程连接服务器功能的python包。

安装

pip install paramiko

示例

import paramiko
import os

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# ip 端口 用户名 密码
ssh.connect('192.168.1.2', 22, 'llk', 'llk123')
#print(os.getcwd()) # 输出的是本地的地址
# 传输文件。本地如果是放到当前文件夹就不必前缀了
sftp = ssh.open_sftp()
# 上传,put(localPath, remotePath)
#sftp.put('file1.txt', '/home/pxy/test.txt')
# 下载,get(remotePath, localPath)
sftp.get('/home/pxy/test.txt', 'test.txt')
# 关闭下载
sftp.close()
# 普通命令
cmd = "mkdir joy"
# 获取输出。不然是看不到的
stdin, stdout, stderr = ssh.exec_command(cmd)
# stdout.read()是byte类型,必须指定编码才能转成str
print("stdout:" + str(stdout.read(), encoding='utf-8') + "\n")
print("stderr:" + str(stderr.read(), encoding='utf-8') + "\n")
# 关闭连接
ssh.close()

注意

一串命令(几个连续的ssh_exec_command)其实是无效的。因为每次执行命令都是新开线程,可以考虑管道,例如cmd1 | cmd2
但是cmd1 必须有正确输出,而 cmd2 必须可以处理 cmd2 的输出结果;而且 cmd2 只能处理 cmd1 的正确输出结果,不能处理 cmd1 的错误信息。
例如下面是可以正确查找到所需行的:

stdin, stdout, stderr = ssh.exec_command('cat joy/test.txt|grep-i"this"')
print(str(stdout.read(),encoding='utf-8'))
print(str(stderr.read(),encoding='utf-8'))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用paramiko库连接到SSH服务器,您可以按照以下步骤进行操作: 1. 首先,确保已安装paramiko库。可以使用以下命令进行安装: ``` pip install paramiko ``` 2. 导入paramiko库: ```python import paramiko ``` 3. 创建SSHClient对象并建立连接: ```python client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect(hostname='your_hostname', username='your_username', password='your_password') ``` 在上面的代码中,将`your_hostname`替换为SSH服务器的主机名或IP地址,`your_username`替换为您的用户名,`your_password`替换为您的密码。如果您使用的是SSH密钥对身份验证,请参考paramiko文档以使用密钥对进行连接。 4. 执行命令或传输文件: - 执行命令: ```python stdin, stdout, stderr = client.exec_command('your_command') ``` 将`your_command`替换为您要执行的命令。然后,您可以使用`stdout.readlines()`来读取命令的输出。 - 传输文件: ```python sftp = client.open_sftp() sftp.put('local_file_path', 'remote_file_path') ``` 将`local_file_path`替换为本地文件的路径,`remote_file_path`替换为远程服务器上目标文件的路径。您还可以使用`sftp.get()`方法从远程服务器下载文件。 5. 关闭连接: ```python client.close() ``` 这样,您就完成了使用paramiko库连接SSH服务器和执行操作的基本步骤。请注意,这只是一个简单的示例,您可以根据自己的需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值