Python進行ssh操作

2021-09-24 20:37:04 字數 3888 閱讀 2810

pip install paramiko

import paramiko

#建立乙個ssh的客戶端,用來連線伺服器

ssh = paramiko.sshclient()

#建立乙個ssh的白名單

know_host = paramiko.autoaddpolicy()

#載入建立的白名單

ssh.set_missing_host_key_policy(know_host)

#連線伺服器

ssh.connect(

hostname = "10.10.21.177",

port = 22,

username = "root",

password = "123"

)#執行命令

stdin,stdout,stderr = ssh.exec_command("rm -rf /root/desktop/mv")

#stdin 標準格式的輸入,是乙個寫許可權的檔案物件

#stdout 標準格式的輸出,是乙個讀許可權的檔案物件

#stderr 標準格式的錯誤,是乙個寫許可權的檔案物件

print(stdout.read().decode())

ssh.close()

import threading

import paramiko

class paramikothreading(threading.thread):

def __init__(self,command,host,username,password,port=22):

self.command = command

self.host = host

self.username = username

self.password = password

self.port = port

super(paramikothreading,self).__init__()

def run(self):

ssh = paramiko.sshclient()

# 建立乙個ssh的白名單

know_host = paramiko.autoaddpolicy()

# 載入建立的白名單

ssh.set_missing_host_key_policy(know_host)

# 連線伺服器

ssh.connect(

hostname=self.host,

port=self.port,

username=self.username,

password=self.password,

)stdin, stdout, stderr = ssh.exec_command(self.command)

print("*"*60)

print("ip:%s,\ncommand:%s,\n"%(self.host,self.command))

print(stdout.read().decode())

print("*"*60)

ssh.close()

if __name__ == '__main__':

from settings import pool #呼叫配置檔案配置檔案為settings.py

command = "ls"

t_pool =

for host in pool:

t = paramikothreading(

host=host.get("host","localhost"),

username=host.get("username","root"),

password=host.get("password","123"),

command=command

)for t in t_pool:

t.start()

for t in t_pool:

t.join()

pool = [

dict(host="10.10.21.177", username="root", password="123"),

dict(host="10.10.21.177", username="root", password="123"),

dict(host="10.10.21.177", username="root", password="123"),

dict(host="10.10.21.177", username="root", password="123"),

dict(host="10.10.21.177", username="root", password="123"),

dict(host="10.10.21.177", username="root", password="123"),

dict(host="10.10.21.177", username="root", password="123"),

dict(host="10.10.21.177", username="root", password="123"),

]

使用paramiko的shell互動式連線會讓本地返回結果為命令列介面,可以在本地**的返回結果下,直接操作命令行。

**如下:

import paramiko

#建立乙個ssh的客戶端

ssh = paramiko.sshclient()

#建立乙個ssh的白名單

know_host = paramiko.autoaddpolicy()

#載入建立的白名單

ssh.set_missing_host_key_policy(know_host)

#連線伺服器

ssh.connect(

hostname = "10.10.21.177",

port = 22,

username = "root",

password = "12345"

)shell = ssh.invoke_shell()

shell.settimeout(1)

command = input(">>>"+"\n")

shell.send(command)

while true:

try:

recv = shell.recv(512).decode()

if recv:

print(recv)

else:

continue

except:

command = input(">>>") + "\n"

shell.send(command)

ssh.close() #關閉連線

import paramiko

trans = paramiko.transport(

sock=("10.10.21.177",22)

)trans.connect(

username="root",

password="12345"

)sftp = paramiko.sftpclient.from_transport(trans)

#上傳#把本地的檔案settings.py,上傳到遠端為/root/desktop/settings.py

sftp.put("settings.py","/root/desktop/settings.py")

# sftp.get("/root/desktop/hh.py","hh.py")

sftp.close()

python 使用mysql進行操作

使用pyclarm直接在file deflaut setting中找到mysql connector python模組匯入。在mysql資料庫中建立資料python 在資料庫中建立資料表people import mysql.connector db mysql.connector.connect ...

python進行檔案操作

什麼是檔案 檔案是系統儲存區域的乙個命名位置,用來儲存一些資訊,便於後續訪問。能夠在非易失性儲存器中實現持續性儲存,比如在硬碟上。當我們要讀取或者寫入檔案時,我們需要開啟檔案 在操作完畢時,我們需要關閉檔案,以便釋放和檔案操作相關的系統資源,因此,檔案操作的主要包括以下 開啟檔案 python使用內...

Linux作業系統下如何利用SSH進行遠端控制

首先,ssh軟體包由兩部分組成,一部分是伺服器端軟體包,另一部分是客戶軟體包。針對unix linux系統,這兩個軟體包是分開打包在兩個不同的檔案中的。在windows 9x nt 2000中,也分為兩部分,不同之處在於,伺服器軟體包只能執行在windows nt及 windows 2000 ser...