Оболочка Python Paramiko вызывает вставку нежелательных символов

Я пишу это, потратив некоторое время на поиски на доступных интернет-ресурсах. У меня есть простая программа, которая использует ssh в маршрутизаторе Cisco для внесения изменений в конфигурацию. Всякий раз, когда я запускаю свою программу, я вижу, что cisco cli (терминал) говорит о недопустимой команде, потому что в мою команду вставлен какой-то символ.

cisco-nexus(config)# username edwin password THISisWHERIAMtypingPWD<0x08>NG 
% Invalid command at '^' marker.
cisco-nexus(config)#

в то время как команда, которую я отправляю, содержит только следующий текст:

username edwin password THISisWHERIAMtypingPWDNG

Понятия не имею, как paramiko вставляет этот случайный код <0x08>.

завершенный код находится здесь:

import paramiko
import time
import re

class ssh:
    def __init__(self, ip, user, pwd):
        self.ip = ip
        self.user = user
        self.pwd = pwd
    def device_conn(self):
        remote_con = paramiko.SSHClient()
        remote_con.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        remote_con.connect(hostname=self.ip, username=self.user, password=self.pwd, look_for_keys=False, allow_agent=False)
        remote_ses = remote_con.invoke_shell()
        output = remote_ses.recv(1000)
        time.sleep(1)
        remote_ses.send("conf t"+"\n")
        time.sleep(0.5)
        remote_ses.send("username edwin password THISisWHERIAMtypingPWDNG"+"\n")
        time.sleep(0.5)
        output = remote_ses.recv(10000)
        print output


with open("device.txt","rb") as dev:
    for fw in dev:
        print fw.strip()
        ob = ssh(fw.strip(), "user", "pwd")
        output = ob.device_conn()

Вы пытались удалить строку в своем коде и набрать ее с нуля? На всякий случай, если он действительно содержит символ «backspace», а ваш редактор кода его не показывает.

Martin Prikryl 15.06.2018 08:32

Да, я пробовал, но это не помогло.

Rsingh 15.06.2018 09:44
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
327
0

Другие вопросы по теме