一、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-hk/n/135275.html
微信掃一掃
支付寶掃一掃