国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語(yǔ)言編程技術(shù)及教程分享平臺(tái)!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - python Paramiko使用示例

python Paramiko使用示例

2020-09-21 23:54Starryland Python

這篇文章主要介紹了python Paramiko的使用示例,幫助大家遠(yuǎn)程控制類 UNIX 系統(tǒng),感興趣的朋友可以了解下。

Paramiko 是由 Python 語(yǔ)言編寫的一個(gè)擴(kuò)展模塊,提供了基于 SSHv2 協(xié)議 (包括客戶端和服務(wù)端)的多種功能實(shí)現(xiàn)。通常被用來(lái)遠(yuǎn)程控制類 UNIX 系統(tǒng)。

Paramiko 可以直接使用 pip 命令安裝:

?
1
$ pip install paramiko

此處不作過多介紹,參考后文中的代碼示例。

遠(yuǎn)程執(zhí)行 Linux 命令

代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import paramiko
 
# 初始化 SSH 客戶端,通過用戶名密碼連接至遠(yuǎn)程服務(wù)器
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy)
client.connect(hostname='remoteserver_ip', username='username', password='password')
 
# 通過 RSA 秘鑰驗(yàn)證的方式連接至遠(yuǎn)程 SSH 服務(wù)
# private_key = paramiko.RSAKey.from_private_key_file('~/.ssh/id_rsa')
# client.connect(hostname="remoteserver_ip", username="username", pkey=private_key)
 
# 遠(yuǎn)程執(zhí)行 df -h 命令并打印輸出
stdin, stdout, stderr = client.exec_command('df -h')
print(stdout.read().decode('utf-8'))
 
client.close()

運(yùn)行效果如下:

python Paramiko使用示例

SFTP 文件傳輸

示例代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import paramiko
 
transport = paramiko.Transport(('hostname_or_ip', port))
 
# 通過用戶名密碼完成驗(yàn)證建立連接
transport.connect(username='username', password='password')
 
# 通過 RSA 私鑰文件完成驗(yàn)證建立連接
# private_key = paramiko.RSAKey.from_private_key_file('/path/to/private_key_file')
# transport.connect(username='username', pkey=private_key)
 
sftp = paramiko.SFTPClient.from_transport(transport)
 
localpath = "localfile"
remotepath = "remotefile_fullpath"
sftp.put(localpath, remotepath)
print("Successfully uploaded")
 
transport.close()

綜合示例

代碼如下(文件名 ssh_connection.py ):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import paramiko
import getpass
import os
 
 
class SSHConnection():
 
  def __init__(self, user, host, port=22, password=''):
    self.username = user
    self.host = host
    self.port = port
    self.password = password
    self.keyfile = self.get_keyfile()
 
  def get_keyfile(self, path=os.getcwd()):
    default_keyfile = os.path.join(
      os.environ['HOME'], '.ssh', 'id_rsa')
 
    if 'id_rsa' in os.listdir(path):
      keyfile = os.path.join(path, 'id_rsa')
    elif os.path.isfile(default_keyfile):
      keyfile = default_keyfile
    else:
      keyfile = ''
 
    return keyfile
 
  def connect(self):
    transport = paramiko.Transport((self.host, self.port))
 
    if self.password:
      transport.connect(username=self.username, password=self.password)
    elif self.keyfile:
      transport.connect(
        username=self.username,
        pkey=paramiko.RSAKey.from_private_key_file(self.keyfile))
    else:
      password = getpass.getpass(
        "Password for %s@%s: " % (self.username, self.host))
      transport.connect(username=self.username, password=password)
 
    self._transport = transport
 
    print("Connected to %s as %s" % (self.host, self.username))
 
  def close(self):
    self._transport.close()
 
  def run_cmd(self, command):
    ssh = paramiko.SSHClient()
    ssh._transport = self._transport
 
    stdin, stdout, stderr = ssh.exec_command(command)
    res = stdout.read().decode('utf-8')
    error = stderr.read().decode('utf-8')
 
    if error.strip():
      return error
    else:
      return res
 
  def trans_file(self, localpath, remotepath, method=''):
    sftp = paramiko.SFTPClient.from_transport(self._transport)
    if method == 'put':
      sftp.put(localpath, remotepath)
      print("File %s has uploaded to %s" % (localpath, remotepath))
    elif method == 'get':
      sftp.get(remotepath, localpath)
      print("File %s has saved as %s" % (remotepath, localpath))
    else:
      print('usage: trans_file(localpath, remotepath, method="get/put"')
 
  def __del__(self):
    self.close()

測(cè)試結(jié)果如下:

(python3) D:\Program\python\devops>python
Python 3.7.2 (default, Jan 2 2019, 17:07:39) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from ssh_connection import SSHConnection
>>> client = SSHConnection('starky','127.0.0.1')
>>> client.connect()
Connected to 127.0.0.1 as starky
>>> client.run_cmd('uname -a')
'Linux server1 5.0.0-20-generic #21-Ubuntu SMP Mon Jun 24 09:32:09 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux\n'
>>> client.trans_file('id_rsa.pub', '/home/starky/id_rsa.pub', method='put')
File id_rsa.pub has uploaded to /home/starky/id_rsa.pub
>>> client.run_cmd('ls -l /home/starky/id_rsa.pub')
'-rw-rw-r-- 1 starky starky 410 7月 20 15:01 /home/starky/id_rsa.pub\n'
>>> exit()

以上就是python Paramiko使用示例的詳細(xì)內(nèi)容,更多關(guān)于python Paramiko的資料請(qǐng)關(guān)注服務(wù)器之家其它相關(guān)文章!

原文鏈接:https://rollingstarky.github.io/2019/07/20/paramiko-examples/?utm_source=tuicool&utm_medium=referral

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 中文字幕日韩欧美 | 中文字幕国产一区二区 | 国产999精品久久久影片官网 | 亚洲精品综合中文字幕 | 国产日韩欧美在线 | 久久综合成人精品亚洲另类欧美 | 高清一区二区三区 | 毛片在线视频 | 免费又黄又爽又猛大片午夜 | 欧美美女黄色网 | 久久人人爽人人爽人人片亚洲 | 日韩精品91爱爱 | 激情五月综合网 | 日韩欧美国产一区二区 | 国产中文一区 | 精品国产一区二区 | 亚洲精品国产乱码在线看蜜月 | 免费欧美 | 午夜成人免费电影 | 视频一区中文字幕 | 中文成人在线 | 亚洲精品一区二区三区在线 | 精品国产乱码一区二区三区四区 | 岛国一区 | 久久综合久久综合久久综合 | 日韩一级大片 | 亚洲精品久久久久久久久久久久久 | 亚洲在线一区 | 午夜影院免费观看视频 | 欧美精品v国产精品v日韩精品 | 国产黄色在线观看 | 亚洲精品国产成人 | 国产精品久久久久久亚洲调教 | 精品av | 玖玖操 | 在线播放中文字幕 | 成人一级黄色大片 | 亚洲欧美日韩精品久久亚洲区 | 国产欧美综合一区二区三区 | 亚洲三区视频 | 一区二区av在线 |