Найти - Пользователи
Полная версия: Подключене к cisco(скрыть пароль)
Начало » Python для новичков » Подключене к cisco(скрыть пароль)
1
valloru
Есть довольно важная задача - подключение к оборудованию 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 не очень понятно как его применять.

Может кто что подсказать?

JOHN_16
valloru
read_login() идея отличная, но во время выполнения просто все зависает
потому что это и подобное ожидают ввода пароля от пользователя. Это не ваш случай.
Если можете правами доступа к файлу ограничить доступ для посторонних лиц, то как вариант делайте так. Пароль всегда будет в каком либо виде доступен, ведь его надо прочитать и явно передать.
valloru
JOHN_16, я понимаю что read_login() по идее должен предлагать мне ввести логин пароль, но этого пчему-то не происходит, точнее логин ввести могу, дальше программа ничего не предлагает, ну и бог с ним. В принципе get_accounts_from_file была бы прекрасным вариантом. Но видимо моих знаний и понимания документации не достаточно что бы корректно этим вариантом воспользоваться. Если делаю
acc = get_accounts_from_file(“accounts.cfg”), получаю ошибку:
line 17, in <module>
con.login(acc)

Можте подсказать в чем проблема?
papuas
 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())
как вариант ? для передачи используйте ssh_v2 транспорт шифруется.
papuas

картинка из гугла просто для примера
keyring также работает с linux credentials
скрипты это конечно хорошо, но мне кажется вам скорее всего нужно это
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB