0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何用paramiko登陆服务器并执行命令

汽车电子技术 来源:Python脚本 作者: otfsenter 2023-03-03 15:27 次阅读

图片

paramiko是用来远程执行命令的模块,

下面是ssh和scp的的两个例子

1- ssh

#!/usr/bin/env python

import paramiko

hostname = ''
password = ''
command = 'ls'

username = ""
port = 22

client = paramiko.SSHClient()

# 其中load_host_keys一般配合save_host_keys来使用,
# load_system_host_keys可以指定主机密钥文件,
# 如果不指定默认就是家目录下的.ssh目录下的known_hosts文件。
client.load_system_host_keys()

client.connect(hostname=hostname, port=port,
               username=username, password=password)

stdin, stdout, stderr = client.exec_command(command)
print(stdout.read())
client.close()

2- scp

这里是直接把服务器上面的的文件复制下来

#!/usr/bin/env python

import paramiko

hostname = ''
password = ''
source = '/root/tmp.txt'  # 服务器上的文件
dest = r'D:\\tmp\\tmp.txt'  # 本机的文件

username = ""
port = 22

t = paramiko.Transport((hostname, port))
t.connect(username=username, password=password)

sftp = paramiko.SFTPClient.from_transport(t)
sftp.get(source, dest)

t.close()

3- load_system_host_keys函数的源码

def load_system_host_keys(self, filename=None):
    if filename is None:
        # try the user's .ssh key file, and mask exceptions
        filename = os.path.expanduser("~/.ssh/known_hosts")
        try:
            self._system_host_keys.load(filename)
        except IOError:
            pass
        return
    self._system_host_keys.load(filename)

从这里可以看出,

load_system_host_keys默认从~/.ssh/known_hosts里面获取服务器,

否则要自己提供一个文件,

这里需要注意一下。

4- 参考的链接

  • paramiko的ssh和scp
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2654

    浏览量

    47280
  • 命令
    +关注

    关注

    5

    文章

    674

    浏览量

    21961
  • 执行
    +关注

    关注

    0

    文章

    16

    浏览量

    12584
收藏 人收藏

    评论

    相关推荐

    手机也能玩Linux服务器——NOKIA手机高端应用

    no”  输入用户名和密码后,我们看到已经成功登陆服务器上,这时光标停在命令提示符上,如图:  我们输入几个简单基本的Linux命令:  ls
    发表于 11-28 14:05

    远程登陆linux

    (man-in-the-middle)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器。而 SSH 是目前较可靠,专为远程登录会话和其他网络
    发表于 12-04 16:29

    【Banana Pi M1+试用体验】BananaPi-M1+之串口登陆、vnc远程登陆

    的串口。(打开设备管理就可以看到,我这里是COM3)速度那里填115200,然后点打开要是开机过后进去是什么都不显示的,在这里只要按回车键就可以看见命令行了。然后输入用户名跟密码(我这里已经登陆过了
    发表于 06-17 19:20

    【Banana Pi M1+试用体验】BananaPi-M1之搭建FTP服务器

    命令行窗口,输入ftp +你的ip地址。默认账号是pi密码bananapi(根据你实际登陆PI用的账号密码) 如果显示这样,说明你的ftp服务器已经成功启动了。6.电脑登陆ftp服
    发表于 06-26 12:53

    【NanoPi NEO Plus2开发板试用体验】tomcat+mysql+natapp搭建服务器(域名登陆)---续

    前言:前面写到安装好tomcat、mysql之后,在电脑端用浏览登陆服务器,接下来配置虚拟目录,创建数据库和表,插入数据。之前部分的链接是:https://bbs.elecfans.com
    发表于 08-25 17:59

    远端机器的临时执行命令

    例行化的工作,像复杂的配置管理、机械化的环境部署,可以用Ansible的playbook(剧本)功能。临时需要在远端机器执行命令时,可以使用Ansible的ad-hoc command(临时执行命令
    发表于 07-19 06:42

    走近源码之Redis如何执行命令

    走近源码:Redis如何执行命令
    发表于 06-09 16:31

    账号登陆问题

    我使用学生邮箱申请的学生许可证,然后用我自己的常用邮箱申请了得极的账号,请问我该如何在使用学生许可证的同时使用得极。学生许可证登陆服务器是portal365.altium.com,得极服务器是portal365.altium.c
    发表于 04-20 11:51

    求一份基于RK3399的Samba共享服务器设计方案

    1、搭建Samba共享服务器安装Samba首先远程登陆 RK3399执行以下命令安装 Samba安装结束阶段有错误提示,但提示说可以忽略这个错误配置Samba新建 smaba 共享目录
    发表于 04-15 16:10

    在华为弹性云服务器上远程编译RK3568的相关资料介绍

    1、在华为弹性云服务器上远程编译rk3568配置华为弹性云服务器首先注册登陆华为云登陆后进入控制台的弹性云
    发表于 09-08 17:06

    CAD中如何快速重复执行命令

    快速重复执行命令主要是靠鼠标右键或者是键盘上的空格以及上下方向键。 输入OP命令打开选项对话框,点用户系统配置选项卡自定义右键单击按钮,默认模式下无论是否选定对象,单
    发表于 10-23 17:04 1607次阅读

    Webshell提权登陆服务器

    Webshell提权登陆服务器
    发表于 09-07 14:04 4次下载
    Webshell提权<b class='flag-5'>登陆</b><b class='flag-5'>服务器</b>

    freeSSHD+PuTTY+UE实现SFTP服务器搭建配置和登陆

    freeSSHD+PuTTY+UE实现SFTP服务器搭建配置和登陆
    发表于 09-09 08:25 7次下载
    freeSSHD+PuTTY+UE实现SFTP<b class='flag-5'>服务器</b>搭建配置和<b class='flag-5'>登陆</b>

    介绍redis服务器运行过程

    Redis服务器负责与多个客户端建立网络连接,处理客户端发送三个的命令请求,在数据库中爆粗你客户单执行命令所产生的数据,通过资源管理来维持服务器
    发表于 03-07 10:15 546次阅读

    1433端口的SQL TOOL执行命令错误应该如何修复详细说明

    然后用SQL TOOLS连接主机,进行SQL或者CMD命令执行,从而 得主机的控制权,但是服务器的管理人员通常会把一些不安全的漏洞补上,所以用sql tools直接执行命令成功的几率不
    发表于 11-22 16:20 2次下载