2017-08-14 143 views
-1

我正在使用click模塊在python中編寫命令行應用程序,該模塊將SSH連接到思科網絡設備,並使用netmiko模塊通過連接發送配置命令。我遇到的問題是,到網絡設備的SSH需要主機名/ IP,用戶名和密碼。我試圖爲我的腳本的用戶實現一次登錄到設備的方式,並保持SSH連接處於打開狀態,從而允許在每次都不登錄的情況下運行子命令。例如,存儲命令行應用程序的登錄憑證

$ myapp ssh 
hostname/IP: 10.10.110.10 
username: user 
password: ******** 

Connected to device 10.10.101.10 

$ myapp command1 
log output 

$ myapp --option command2 
log output 

$ myapp disconnect 
closing connection to 10.10.101.10 

我該如何去存儲/處理證書以允許在我的cli中使用此功能?我在研究這個問題時看到了緩存或OAuth的建議,但我仍然不確定如何實現這一點,或者推薦並且安全的方法。

回答

0

也許你正在嘗試這樣的事情。

$ myapp ssh -u user -p password 
(myapp) command1 
(myapp) command2 
(myapp) disconnect 
$ 

Python有一個標準庫模塊CMD,可以幫助:

https://docs.python.org/3.5/library/cmd.html

+0

這是怎麼了我的應用程序現在已經實現。不過,我希望能夠分別調用每個命令。 – mwalto7

+0

也許在套接字上偵聽並創建一個像「myapp send」這樣的新命令,它將通過相同的套接字發送?這個問題看起來類似..登錄和密碼是敏感信息。https://stackoverflow.com/questions/12739539/using-cmd-module-with-a-socket – clutton

+0

登錄和密碼是敏感信息。我建議你看一下'keyring'包:https://pypi.python.org/pypi/keyring,可以在OSX,Linux和Windows Credential Vault上運行。 – Arminius

相關問題