主要問題在於爲windows上的ssh的設置,paramiko連接是沒有問題的
想法是遠程執行windows服務器上的python程序,通過ssh連接,我在windows服務器上通過winsshd軟件個windows安裝了ssh服務,但是在創建虛擬用戶的時候沒有給用戶對應的操作權限,所以在通過paramiko使用ssh的賬號密碼連接執行遠程windows服務器上的python腳本時會出現下面錯誤
我的連接代碼如下,使用的是python3
import paramiko
def ssh_connect(ip, user, pwd):
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip, username=user, password=pwd)
return ssh
def execute_command(device_details, command):
ip = device_details.get("ip")
username = device_details.get("username")
password = device_details.get("password")
ssh_obj = ssh_connect(ip, username, password)
print(ip, username, password)
# 執行cmd命令 command
ssh_stdin, ssh_stdout, ssh_stderr = ssh_obj.exec_command(command)
print(ssh_stderr.read())
print(ssh_stdout.read())
return ssh_stdout.read()
device_details = {
"ip": '144.***.***.***', "username": 'test', "password": 'test'
}
command = "cmd /c C:/python36/python.exe D:/demo.py"
output = execute_command(device_details, command)
print(output)
遠程windows服務器上的ssh用戶設置如下圖
如果在 shell access type 那一欄如果選的是默認的 No shell access ,那麼你在本地是沒有辦法執行遠程windows上的程序的,會提示標題所說的錯誤 如下圖所示