iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python实现ssh客户端
  • 417
分享到

python实现ssh客户端

客户端pythonssh 2023-01-31 05:01:21 417人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

以下程序均来自《python.UNIX和linux系统管理指南》ssh有两种登陆方式,一种是使用用户名、密码方式,另一种是使用加密,不再使用密码使用用户名、密码方式,前提是曾经ssh登陆过远程机器,在用户目录的.ssh目录下的known_h

以下程序均来自《python.UNIX和linux系统管理指南》

ssh有两种登陆方式,一种是使用用户名、密码方式,另一种是使用加密,不再使用密码


使用用户名、密码方式,前提是曾经ssh登陆过远程机器,在用户目录的.ssh目录下的known_hosts有记录

ssh.py
#!/usr/bin/env Python
import paramiko
hostname = '192.168.137.3'
port = 22
username = "root"
passWord = "123456"
if __name__ == "__main__":
        paramiko.util.log_to_file('paramiko.log')
        s = paramiko.SSHClient()
        s.load_system_host_keys()
        s.connect(hostname, port, username, password)
        stdin, stdout, stderr = s.exec_command('ifconfig')
        print stdout.read()
        s.close()

运行结果:

[root@Centos python]# python ssh.py

eth0      Link encap:Ethernet  HWaddr 00:0C:29:1B:C2:CD  

         inet addr:192.168.137.3  Bcast:192.168.137.255  Mask:255.255.255.0

         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

         RX packets:976 errors:0 dropped:0 overruns:0 frame:0

         TX packets:958 errors:0 dropped:0 overruns:0 carrier:0

         collisions:0 txqueuelen:1000

         RX bytes:104727 (102.2 KiB)  TX bytes:125765 (122.8 KiB)

         Interrupt:67 Base address:0x2000


lo        Link encap:Local Loopback  

         inet addr:127.0.0.1  Mask:255.0.0.0

         UP LOOPBACK RUNNING  MTU:16436  Metric:1

         RX packets:2340 errors:0 dropped:0 overruns:0 frame:0

         TX packets:2340 errors:0 dropped:0 overruns:0 carrier:0

         collisions:0 txqueuelen:0

         RX bytes:3564169 (3.3 MiB)  TX bytes:3564169 (3.3 MiB)

sftp

sftp.py
#!/usr/bin/env python
import paramiko
import os
hostname = '192.168.137.3'
port = 22
username = 'root'
password = '123456'
dir_path = '/usr/local/get'
if __name__ == '__main__':
        t = paramiko.Transport((hostname, port))
        t.connect(username=username, password=password)
        sftp = paramiko.SFTPClient.from_transport(t)
        files = sftp.listdir(dir_path)
        for f in files:
                print 'Retrieving', f
                sftp.get(os.path.join(dir_path, f), f)
        t.close()

运行结果:

[root@centos python]# python sftp.py

Retrieving c

Retrieving a

Retrieving b

Retrieving d


使用RSA加密方式,前提是已经设置好加密登陆方式

ssh加密登陆方法:

[root@centos .ssh]# ssh-keygen -t rsa  #其他的直接回车就行

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

74:64:97:4d:af:52:c0:8c:98:ae:83:7e:e7:25:3a:6e root@centos

ssh

[root@centos .ssh]# cp id_rsa.pub authorized_keys

[root@centos .ssh]# scp authorized_keys root@192.168.137.3:/root/.ssh

#拷贝到ssh的那天机器上


ssh

ssh_rsa.py
#!/usr/bin/env python
import paramiko
hostname = '192.168.137.3'
port = 22
username = "root"
password = "123456"
pkey_file = "/root/.ssh/id_rsa"
if __name__ == "__main__":
        key = paramiko.RSAKey.from_private_key_file(pkey_file)
        s = paramiko.SSHClient()
        s.load_system_host_keys()
        s.connect(hostname, port, pkey=key)
        stdin, stdout, stderr = s.exec_command('ifconfig')
        print stdout.read()
        s.close()

运行结果同上ssh

sftp

sftp_rsa.py
#!/usr/bin/env python
import paramiko
import os
hostname = '192.168.137.3'
port = 22
username = 'root'
password = '123456'
dir_path = '/usr/local/get'
pkey_file = '/root/.ssh/id_rsa'
if __name__ == '__main__':
        key = paramiko.RSAKey.from_private_key_file(pkey_file)
        t = paramiko.Transport((hostname, port))
        t.connect(username=username, pkey=key)
        sftp = paramiko.SFTPClient.from_transport(t)
        files = sftp.listdir(dir_path)
        for f in files:
                print 'Retrieving', f
                sftp.get(os.path.join(dir_path, f), f)
        t.close()

运行结果同上sftp

--结束END--

本文标题: python实现ssh客户端

本文链接: https://www.lsjlt.com/news/189199.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python实现ssh客户端
    以下程序均来自《Python.UNIX和Linux系统管理指南》ssh有两种登陆方式,一种是使用用户名、密码方式,另一种是使用加密,不再使用密码使用用户名、密码方式,前提是曾经ssh登陆过远程机器,在用户目录的.ssh目录下的known_h...
    99+
    2023-01-31
    客户端 python ssh
  • android ssh客户端怎么实现
    要实现 Android 上的 SSH 客户端,可以使用以下步骤: 添加 SSH 客户端库:首先需要在 Android 项目中添加...
    99+
    2023-10-22
    android ssh
  • Python MQTT客户端实现
    如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:12951803 1.安装paho-mqtt 使用Python Package Index (PyPi) pip install ...
    99+
    2023-01-31
    客户端 Python MQTT
  • SSH客户端中如何连接SSH Secure Shell
    这篇文章将为大家详细讲解有关SSH客户端中如何连接SSH Secure Shell,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。运行环境 WINDOWS下安装SSH客户端,名字是SSHSecureShel...
    99+
    2023-06-13
  • python——客户端
    客户端综述twisted是一个设计非常灵活的框架,通过它可以写出功能强大的客户端,然而要在代码中使用非常多的层次结构。这个文档包括创建用于TCP,SSL和Unix sockets的客户端在 底层,实际上完成协议语法和处理的是Protocol...
    99+
    2023-01-31
    客户端 python
  • Java实现websocket客户端
    常规情况下,大多数时候Java后台作为websocket服务端,实现方式也比较简单,网上很多案例代码。但是很多时候项目中服务与服务之间也需要使用websocket通信,此时项目就需要实现客户端功能。 步骤一:导入依赖: org.jav...
    99+
    2023-10-23
    java websocket 开发语言
  • python中如何实现客户端通信
    这篇文章将为大家详细讲解有关python中如何实现客户端通信,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、实现流程创建一套接字。用connect()函数连接到服务器。使用sendall()向服务器发送...
    99+
    2023-06-15
  • Python基于socket实现TCP客户端和服务端
    目录一、基于socket实现的TCP客户端二、基于socket实现的TCP服务端三、socket实现的多任务版TCP服务端1、面向对象版本一、基于socket实现的TCP客户端 im...
    99+
    2024-04-02
  • SSH客户端连接远程服务器
    目录 一、什么是客户端连接远程服务器 二、什么是服务端连接远程服务器 三、查看网络信息 1、图形程序查看网络信息 2、命令查看网络信息 四、SSH客户端(Linux) 五、SSH客户端(windows) 六、SSH远程服务器 一、什么是...
    99+
    2023-09-20
    ssh 服务器 运维 linux
  • Python如何实现MySQL客户端操作库
    这篇文章主要介绍了Python如何实现MySQL客户端操作库,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。PyMySQL 是一个纯 Python...
    99+
    2024-04-02
  • Python边学边用--BT客户端实现之
    BitTorrent文件使用bencode编码,其中包括了4种数据类型: 'd' 开头表示是dict类型,'e'表示结束 'l' (小写字母L)开头表示是list类型,'e'表示结束 'i'开头表示是integer类型,'e'表示结束,可...
    99+
    2023-01-31
    客户端 边学 Python
  • Ubuntu系统怎么安装SSH客户端
    在Ubuntu系统中安装SSH客户端可以通过以下步骤完成:1. 打开终端(Terminal),可以通过按下Ctrl + Alt + ...
    99+
    2023-10-08
    Ubuntu
  • Python的SIP客户端
        公司要搭一套电话会议系统,经济危机啦,为了节省开支,这种实验性的东西都交给我了,也是因为没有什么项目,不能让人闲着啊,哈哈。开源的IP PBX就知道asterisk和opensir,因为星号的盛名,选择了asterisk,但配置就...
    99+
    2023-01-31
    客户端 Python SIP
  • Python中怎么实现服务端与客户端连接
    本篇内容主要讲解“Python中怎么实现服务端与客户端连接”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中怎么实现服务端与客户端连接”吧!服务端我们使用 socket 模块的&nbs...
    99+
    2023-06-08
  • python客户端与服务器端通信怎么实现
    Python客户端与服务器端通信可以通过套接字(socket)实现。1. 服务器端首先需要创建一个套接字,并绑定到指定的IP地址和端...
    99+
    2023-09-08
    python 服务器
  • python实现的WebSocket客户
    安装 sudo pip install websocket-client 示例客户端代码: #!/usr/bin/python from websocket import create_connection ws = creat...
    99+
    2023-01-31
    客户 python WebSocket
  • Python培训教程:基于Python的ModbusTCP客户端实现
    Python培训教程:基于Python的ModbusTCP客户端实现Modbus协议是由Modicon公司(现在的施耐德电气Schneider Electric)推出,主要建立在物理串口、以太网TCP/IP层之上,目前已经成为工业领域通信协...
    99+
    2023-06-02
  • Python基于socket怎么实现TCP客户端和服务端
    这篇文章主要讲解了“Python基于socket怎么实现TCP客户端和服务端”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python基于socket怎么实现TCP客户端和服务端”吧!一、基...
    99+
    2023-06-30
  • FastDFS客户端(Python版)指
    最近做了一个分布式的项目用到了FastDFS,关于FastDFS这里就不阐述了,有兴趣了解的小伙伴,请到官网:http://bbs.chinaunix.net/forum-240-1.html。这里着重介绍FastDFS客户端(Pytho...
    99+
    2023-01-31
    客户端 FastDFS Python
  • android ssh客户端安装的方法是什么
    在Android设备上安装SSH客户端的方法如下: 打开Google Play商店。在搜索框中输入“SSH客户端”或者“SSH”,...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作