2017-08-14 22 views
-1

clickモジュールを使用してコマンドラインアプリケーションを作成しています。このモジュールは、CiscoネットワークデバイスにSSH接続し、netmikoモジュールを使用して接続を介してコンフィギュレーションコマンドを送信します。私が実行している問題は、ネットワークデバイスへのSSH-ingがホスト名/ 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'パッケージ(OSX、Linux、Windows Credential Vaultで動作するhttps://pypi.python.org/pypi/keyring)を見てみることをお勧めします。 – Arminius

関連する問題