2017-08-14 149 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

相关问题