Форум сайта python.su
0
Есть довольно важная задача - подключение к оборудованию cisco во время выполнения программы python. Все в принципе проходит нормально, но беда в том что в самом скрипте приходится в явном виде указывать логин/пароль, например:
f=open(“File.txt”)
lines=list(f)
for l in lines:
acc = Account('login', ‘password’)
con = SSH2()
print(l.strip())
con.connect(l.strip())
con.login(acc)
con.execute('terminal length 0')
con.execute('sh run')
con.send('exit')
Суть скрипта в том что мы коннектимся к оборудованию из списка File.txt и выводм sh run. Можно каким-либо образом скрыть login/password?
read_login() идея отличная, но во время выполнения просто все зависает
getpass та же проблема
get_accounts_from_file не очень понятно как его применять.
Может кто что подсказать?
Офлайн
221
valloruпотому что это и подобное ожидают ввода пароля от пользователя. Это не ваш случай.
read_login() идея отличная, но во время выполнения просто все зависает
Офлайн
0
JOHN_16, я понимаю что read_login() по идее должен предлагать мне ввести логин пароль, но этого пчему-то не происходит, точнее логин ввести могу, дальше программа ничего не предлагает, ну и бог с ним. В принципе get_accounts_from_file была бы прекрасным вариантом. Но видимо моих знаний и понимания документации не достаточно что бы корректно этим вариантом воспользоваться. Если делаю
acc = get_accounts_from_file(“accounts.cfg”), получаю ошибку:
line 17, in <module>
con.login(acc)
Можте подсказать в чем проблема?
Офлайн
6
from os import getlogin import sys import keyring import getpass my_server = '192.168.0.1' def windows_credential(): # look there: cmd -> control userpasswords2 -> Advanced -> Manage passwd -> Windows Credential passwd = getpass.getpass(prompt='Please input password for account: ') keyring.set_password(my_server, getlogin(), passwd) print('The Windows credential was sucessfully created for host: {} and user: {}'.format(my_server, getlogin())) def get_passwd(): passwd = keyring.get_password(my_server, getlogin()) if passwd is None: print('Please create windows credential for host') sys.exit(1) return passwd windows_credential() print(get_passwd())
Отредактировано papuas (Фев. 26, 2018 15:08:33)
Офлайн
6
картинка из гугла просто для примера
keyring также работает с linux credentials
скрипты это конечно хорошо, но мне кажется вам скорее всего нужно это
Отредактировано papuas (Фев. 26, 2018 16:02:25)
Офлайн