2016-07-07 26 views
1

我發現下面的腳本互聯網上:的paramiko腳本錯誤

import paramiko 
    from paramiko import client 


class ssh: 
client = None 

def __init__(self, address, username, password): 
    # Let the user know we're connecting to the server 
    print("Connecting to server.") 
    # Create a new SSH client 
    self.client = client.SSHClient() 
    # The following line is required if you want the script to be able to access a server that's not yet in the known_hosts file 
    self.client.set_missing_host_key_policy(client.AutoAddPolicy()) 
    # Make the connection 
    self.client.connect(address, username=username, password=password, look_for_keys=False) 

def sendCommand(self, command): 
    # Check if connection is made previously 
    if (self.client): 
     stdin, stdout, stderr = self.client.exec_command(command) 
     while not stdout.channel.exit_status_ready(): 
      # Print stdout data when available 
      if stdout.channel.recv_ready(): 
       # Retrieve the first 1024 bytes 
       alldata = stdout.channel.recv(1024) 
       while stdout.channel.recv_ready(): 
        # Retrieve the next 1024 bytes 
        alldata += stdout.channel.recv(1024) 

       # Print as string with utf8 encoding 
       print(str(alldata, "utf8")) 
    else: 
     print("Connection not opened.") 


paramiko.util.log_to_file('paramiko.log') # <----- added line 
connessione = ssh("10.76.80.11","pi","raspberry") 

connessione.sendCommand("arp -a") 

我想突擊隊發送到我的覆盆子這個劇本,我想沒有線運行程序:

paramiko.util.log_to_file('paramiko.log') 

但是當我試圖運行的代碼我有這個運行時錯誤:

 /usr/bin/python /Users/Marco/PycharmProjects/ssh_control/ssh.py 
    Connecting to server. 
    No handlers could be found for logger "paramiko.transport" 
    Traceback (most recent call last): 
    File "/Users/Marco/PycharmProjects/ssh_control/ssh.py", line 43, in <module> 
    connessione = ssh("10.76.80.11","pi","raspberry") 
    File "/Users/Marco/PycharmProjects/ssh_control/ssh.py", line 16, in __init__ 
    self.client.connect(address, username=username, password=password, look_for_keys=False) 
    File "/Users/Marco/Library/Python/2.7/lib/python/site-packages/paramiko/client.py", line 338, in connect 
     t.start_client() 
    File "/Users/Marco/Library/Python/2.7/lib/python/site- packages/paramiko/transport.py", line 493, in start_client 
    raise e 
    AttributeError: 'EntryPoint' object has no attribute 'resolve' 

     Process finished with exit code 1 

所以我搜查互聯網,我發現問題可以通過paramiko.log行解決。

但現在我已經另一個錯誤:

/usr/bin/python /Users/Marco/PycharmProjects/ssh_control/ssh.py 
    Connecting to server. 
    Traceback (most recent call last): 
    File "/Users/Marco/PycharmProjects/ssh_control/ssh.py", line 38, in <module> 
    connessione = ssh("10.76.80.11","pi","raspberry") 
    File "/Users/Marco/PycharmProjects/ssh_control/ssh.py", line 16, in  __init__ 
    self.client.connect(address, username=username, password=password, look_for_keys=False) 
    File "/Users/Marco/Library/Python/2.7/lib/python/site- packages/paramiko/client.py", line 338, in connect 
    t.start_client() 
    File "/Users/Marco/Library/Python/2.7/lib/python/site-packages/paramiko/transport.py", line 493, in start_client 
raise e 
    AttributeError: 'EntryPoint' object has no attribute 'resolve' 

    Process finished with exit code 1 

有人可以幫助我嗎?因爲我無法理解錯誤在哪裏。

在此先感謝

回答

0

原來你需要升級setuptools的,然後重新安裝該軟件包。似乎舊版本在安裝python密碼包時破壞了一些東西。

請嘗試以下...

pip install -U setuptools 
pin install -U paramiko 

https://github.com/pyca/cryptography/issues/2853

+0

謝謝您幫助,我已經安裝了模塊,現在沒有錯誤,但程序仍然沒有不工作。當我使用命令「rebo​​ot」運行程序時,什麼都沒有發生,我認爲sendCommand()中存在一些問題, – macco

0

我解決我的問題與此:

# Make the connection 
    self.client.connect(address, port = 22, username=username, password=password, look_for_keys=False) 

因爲端口之前沒有specificate