實現功能
登錄到遠程主機,然后在遠程主機上繼續連接遠程主機,執行命令。
import paramiko
import time# 第二個遠程主機的連接信息(在第一個遠程主機上執行SSH連接時使用)
second_remote_host = '192.168.xx.xxx' # 創建SSH客戶端并連接到第一個遠程主機
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 自動添加主機名和主機密鑰到本地HostKeys對象,并保存
ssh.connect('xx.xx.xx.xx', username='root', password='xxx') # 在第一個遠程主機上執行SSH命令以連接到第二個遠程主機
# 注意:這里我們假設你已經在第一個遠程主機上設置了SSH密鑰認證到第二個遠程主機
# 或者你可以在命令中指定密碼(但這通常不是安全的做法)
command = f"/opt/sshpass/bin/sshpass -p 密碼 ssh 用戶名@{second_remote_host} 'ls '"
stdin, stdout, stderr = ssh.exec_command(command) time.sleep(1)# 讀取命令輸出
output = stdout.read().decode()
error = stderr.read().decode() if error: print(f"Error connecting to {second_remote_host}: {error}")
else: print(f"Output from {second_remote_host}:\n{output}") # 關閉連接
ssh.close()