2014-02-13 157 views
4

我使用paramiko登錄到一組服務器,並檢查我的憑據是否工作。我不需要運行任何進一步的命令。我知道爲驗證失敗和連接錯誤引發的異常。但是,我不知道對一個成功的login..This返回什麼是我到目前爲止有:成功登錄後Paramiko返回代碼

f1 = open('hostfile','r') 
devices = f1.readlines() 

ssh = paramiko.SSHClient() 
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 


for device in devices: 
    try: 
      ssh.connect(device, username=username, password=password, timeout=4) 
      <IF CONDITION MET THEN> 
      output= "Successfully Authenticated" 
      ssh.close() 
    except paramiko.AuthenticationException: 
      output = "Authentication Failed" 
      print output 
    except socket.error, e: 
      output = "Connection Error" 
      print output 

我怎麼替代「IF條件滿足,那麼」用?

+0

我向你保證,我不是,甚至遠程試圖做類似的東西that..I對其中近600個多服務器審計需要運行用戶訪問,因此這個腳本 – Amistad

回答

4

你不需要一個IF條件。因爲如果身份驗證失敗,腳本無論如何都會引發異常,並且不會執行其餘的語句

因此,您只需在ssh.connect之後放置語句,因爲只有在連接成功時纔會執行它們。

如果您仍希望將if條件,你可以做的是

conn = ssh.connect(device, username=username, password=password, timeout=4) 

if conn is None: 
     print "Successfully Authenticated" 
+0

DA14 ..我不想執行任何成功執行後..我只需要檢查我是否通過身份驗證,打印它,關閉連接並移動到下一個設備在for循環..我會給如果條件,你提到一個鏡頭,並在一段時間內回覆給你.. – Amistad

+0

這工作..謝謝.. – Amistad

+0

@Amistad歡迎 – 2014-02-13 13:41:44

相關問題