一、SSH遠程連接的概念
SSH(Secure Shell)是一種網路協議,主要用於遠程登錄以及遠程執行命令。我們可以通過SSH協議連接到遠程伺服器,並在遠程伺服器上執行命令行操作。在Python中,我們可以使用paramiko模塊實現SSH遠程連接。
二、使用paramiko模塊實現SSH遠程連接
paramiko模塊是Python中用於SSH協議連接的第三方庫,可以方便地實現SSH遠程連接。在使用paramiko模塊之前,需要先安裝該模塊。
pip install paramiko
安裝完成後,我們可以通過以下代碼實現SSH遠程連接。
import paramiko # 連接信息 host = "192.168.1.100" port = 22 username = "root" password = "123456" # 創建SSH客戶端 client = paramiko.SSHClient() # 自動添加主機名和主機密鑰到本地主機文件 client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 連接遠程伺服器 client.connect(host, port, username=username, password=password) # 在遠程伺服器上執行命令 stdin, stdout, stderr = client.exec_command('ls -l') # 輸出命令執行結果 print(stdout.read().decode('utf-8')) # 關閉SSH連接 client.close()
三、在SSH連接中添加文件傳輸功能
除了遠程執行命令,SSH連接還可以進行文件傳輸。paramiko模塊提供了SFTP(SSH File Transfer Protocol)用於實現文件傳輸功能。
以下代碼演示如何上傳本地文件到遠程伺服器。
import paramiko # 連接信息 host = "192.168.1.100" port = 22 username = "root" password = "123456" # 創建SSH客戶端 client = paramiko.SSHClient() # 自動添加主機名和主機密鑰到本地主機文件 client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 連接遠程伺服器 client.connect(host, port, username=username, password=password) # 創建SFTP客戶端 sftp_client = client.open_sftp() # 上傳文件 sftp_client.put('/local/file/path', '/remote/file/path') # 關閉SFTP連接 sftp_client.close() # 關閉SSH連接 client.close()
四、利用SSH連接實現埠轉發
除了遠程連接和文件傳輸,SSH連接還可以用於實現埠轉發。實現埠轉發後,我們可以在本地主機上通過指定埠號連接到遠程伺服器上的服務。
以下代碼演示如何利用SSH連接實現本地主機到遠程伺服器的埠轉發。
import paramiko # 連接信息 host = "192.168.1.100" port = 22 username = "root" password = "123456" # 創建SSH客戶端 client = paramiko.SSHClient() # 自動添加主機名和主機密鑰到本地主機文件 client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 連接遠程伺服器 client.connect(host, port, username=username, password=password) # 實現埠轉發 channel = client.get_transport().open_channel( 'direct-tcpip', ('127.0.0.1', 8080), ('192.168.1.200', 80)) # 關閉SSH連接 client.close()
五、總結
通過使用paramiko模塊,我們可以很方便地實現SSH遠程連接以及文件傳輸和埠轉發等操作。這對於需要遠程操作伺服器的開發人員來說是非常有用的。
原創文章,作者:JEXC,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/135275.html