導航:首頁 > 配伺服器 > python如何調用ssh連到伺服器

python如何調用ssh連到伺服器

發布時間:2022-12-13 09:07:57

Ⅰ 請教下python3 上如何實現級聯ssh

首先,我的windows系統上有python2和python3。使用下面命令切換到python3:

activate py3
1
接著使用下面命令下載相關模塊:

pip install ecdsa
pip install Crypto
pip install paramiko
1
2
3
連接伺服器操作:
# -*- coding: utf-8 -*-
import paramiko
# 伺服器相關信息,下面輸入你個人的用戶名、密碼、ip等信息
ip = ""
port = 22
user = ""
password = ""
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 建立連接
ssh.connect(ip,port,user,password,timeout = 10)
#輸入linux命令
stdin,stdout,stderr = ssh.exec_command("pwd")
# 輸出命令執行結果
result = stdout.read()
print(result)
#關閉連接
ssh.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
如下,運行該程序,可以看到控制台輸出的結果:

Ⅱ 純干貨!python 在運維中的應用 (一):批量 ssh/sftp

日常工作中需要大量、頻繁地使用ssh到伺服器查看、拉取相關的信息或者對伺服器進行變更。目前公司大量使用的shell,但是隨著邏輯的復雜化、腳本管理的精細化,shell已經不滿足日常需求,於是我嘗試整合工作中的需求,製作適合的工具。 由於管理制度的缺陷,我以工作流程為核心思考適合自己的運維方式,提升工作效率,把時間留給更有價值的事情。 完整代碼在最後,請大家參考。

生產:4000+物理伺服器,近 3000 台虛擬機。

開發環境:python3.6、redhat7.9,除了paramiko為第三方模塊需要自己安裝,其他的直接import即可。

批量執行操作是一把雙刃劍。批量執行操作可以提升工作效率,但是隨之而來的風險不可忽略。

風險案例如下:

掛載很多數據盤,通常先格式化硬碟,再掛載數據盤,最後再寫入將開機掛載信息寫入/etc/fstab文件。在批量lsblk檢查硬碟信息的時候發現有的系統盤在/sda有的在/sdm,如果不事先檢查機器相關配置是否一致直接按照工作經驗去執行批量操作,會很容易造成個人難以承受的災難。

在執行批量操作時按照慣例:格式化硬碟->掛載->開機掛載的順序去執行,假設有的機器因為某些故障導致格式化硬碟沒法正確執行。在處理這類問題的時候通常會先提取出失敗的ip,並再按照慣例執行操作。運維人員會很容易忽略開機掛載的信息已經寫過了,導致復寫(這都是血和淚的教訓)。

所以,為了避免故障,提升工作效率,我認為應當建立團隊在工作上的共識,應當遵守以下原則:

當然,代碼的規范也應當重視起來,不僅是為了便於審計,同時也需要便於溯源。我認為應當注意以下幾點:

1、ssh no existing session,sftp超時時間設置:

在代碼無錯的情況下大量ip出現No existing session,排查後定位在代碼的寫法上,下面是一個正確的示例。由於最開始沒考慮到ssh連接的幾種情況導致了重寫好幾遍。另外sftp的實例貌似不能直接設置連接超時時間,所以我採用了先建立ssh連接再打開sftp的方法。

2、sftp中的get()和put()方法僅能傳文件,不支持直接傳目錄:

不能直接傳目錄,那換個思路,遍歷路徑中的目錄和文件,先創建目錄再傳文件就能達到一樣的效果了。在paramiko的sftp中sftp.listdir_attr()方法可以獲取遠程路徑中的文件、目錄信息。那麼我們可以寫一個遞歸來遍歷遠程路徑中的所有文件和目錄(傳入一個列表是為了接收遞歸返回的值)。

python自帶的os模塊中的os.walk()方法可以遍歷到本地路徑中的目錄和文件。

3、多線程多個ip使用sftp.get()方法時無法並發。

改成多進程即可。

4、多個ip需要執行相同命令或不同的命令。

由於是日常使用的場景不會很復雜,所以借鑒了ansible的playbook,讀取提前准備好的配置文件即可,然後再整合到之前定義的ssh函數中。


同時,我們還衍生出一個需求,既然都要讀取配置,那同樣也可以提前把ip地址准備在文件里。正好也能讀取我們返回的執行程序的結果。

參數說明:

密碼認證:

公鑰認證:

可以配合 grep,awk 等命令精準過濾。

個人認為 Python 在初中級運維工作中的性質更像是工具,以提升工作效率、減少管理成本為主。可以從當前繁瑣的工作中解脫出來,去 探索 更有價值的事情。python 本質上並不會減少故障的產生,所以在不同的階段合理利用自身掌握的知識解決當前最重要的痛點,千萬不要本末倒置。

Ⅲ python如何通過串口SSH登錄伺服器

需要寫一個基於串口通信協議的ssh伺服器和客戶端,伺服器部署到linux上,客戶端在windows上;
其次,客戶端要提供sdk for python;
最後,你就可以用python通過ssh登錄linux了。

Ⅳ python 使用paramiko模塊ssh遠程linux伺服器,linux伺服器已經使用公鑰認證免密碼登陸,請問怎麼寫。

實例1:
#!/usr/bin/python
import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect("172.16.1.3",22,"root","333333")
stdin, stdout, stderr = ssh.exec_command("df -h")
print stdout.readlines()
ssh.close()

實例2:
#!/usr/bin/python
import paramiko
t = paramiko.Transport(("172.16.1.2",322))
t.connect(username = "root", password = "222222")
sftp = paramiko.SFTPClient.from_transport(t)
remotepath='/opt/test.txt'
localpath='/opt/test.txt'
sftp.put(localpath,remotepath)
#sftp.get(remotepath, localpath)
t.close()

Ⅳ python 模擬 ssh 執行遠程命令

日常開發連接 Linux 伺服器,都會用到 ssh 客戶端的軟體
其實 python 有一個模塊,可以簡單模擬一個 ssh 客戶端/服務端
編寫一些自動化的的任務時,會經常和它打交道
簡單記錄一下 paramiko 的基本使用

paramiko 不是標准庫,需要自行安裝
要求 py2.7,3.4 版本以上 [1]

在得到一個 ssh_client 客戶端連接對象後

第一次和伺服器建立連接,需要選擇是否自動將伺服器的 host_key 公鑰,記錄在本地

因為,在計算機的世界裡,沒有永久的朋友-- IP 短時間里不會刷新,但是系統可能隨時被重置

否則會報錯提示:

可以加入 logging 模塊,查看詳細的通訊過程

使用三個變數,獲取返回的信息對象

讀取命令的執行結果

Ⅵ 工具使用:如何使用 SSH 連接到你的雲伺服器

1、生成SSH Keys

打開terminal執行如下命令:

ssh-keygen -t rsa -b 40961

然後再執行

cd ~/.sshvi [email protected] (拷貝其所有內容)123

2、將生成的SSH key拷貝添加到vultr的ssh中

5、修改root密碼

[root@localhost ~]# passwd Changing password for user root.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

Ⅶ 如何使用 SSH 連接到你的雲伺服器

以SSH Secure Shell Client 3.2.9連接centos6.5伺服器為例。1,下載安裝SSH Secure Shell Client 3.2.9.此過程沒有什麼技術含量,默認安裝就可以了。「SSH Secure Shell Client」是「SSH安全Shell客戶端」,連接伺服器後出現的是字元命令操作界面;「SSH Secure File Transfer Client」是「SSH的安全文件傳輸的客戶端」,連接伺服器後出現的是文件管理界面.2,打開SSH,點擊界面左上角的電腦標志,然後在彈出的對話框中輸入伺服器的IP地址(公網IP),和賬號——然後點擊右邊的「connect」按鈕——輸入密碼,點擊OK,進入到CentOS6.5中的命令字元界面,這樣就成功連接上伺服器了。

遠程雲伺服器其實不復雜,希望對不會遠程連接雲伺服器的朋友有所幫助。

Ⅷ 如何使用Python 自動執行連接ssh後並執行Oracle查詢語句並返回查詢結果

可以使用paramiko模塊,這個模塊就是python實現的高效ssh客戶端,用它連接遠程伺服器後,就可以使用裡面的函數來執行Oracle語句,返回結果可以保存為列表,然後列印出來就可以了,你可以嘗試一下,這里就不給出具體的代碼了。

閱讀全文

與python如何調用ssh連到伺服器相關的資料

熱點內容
男主角叫林楓的都市小說 瀏覽:599
哪家雲伺服器是bgp多線 瀏覽:376
長沙黑馬程序員地址 瀏覽:432
雲伺服器有什麼優點缺點 瀏覽:631
單片機51單片機 瀏覽:825
上海易通壓縮機鑄造 瀏覽:447
seo深度解析pdf 瀏覽:199
安卓手機怎麼拍手寫視頻 瀏覽:464
電梯碰綠衣女變異的韓國電影 瀏覽:412
外出電影完整版下載 瀏覽:221
老電影等 瀏覽:236
有個小姑娘叫美娜的韓劇 瀏覽:143
韓國美容院老闆出軌顧客的片子 瀏覽:870
日本愛情動作大片 瀏覽:617
微信好友怎麼加密不能讓別人看見聊天記錄 瀏覽:145
愛情電影網 apdy類似網站 瀏覽:945
地鐵快線和加密線 瀏覽:41
計算機科學程序員 瀏覽:356
激光手術治療近視適合程序員嗎 瀏覽:107
資深程序員優良習慣 瀏覽:358