Как я могу убедиться, что SSH-соединение возможно без данных для входа?Python

Программы на Python
Anonymous
Как я могу убедиться, что SSH-соединение возможно без данных для входа?

Сообщение Anonymous »

Я пытаюсь написать функцию python2.7, которая может определить, можно ли подключиться к определенному IP-адресу (хосту) с использованием протокола SSH. Проблема в том, что мне приходится делать это, не имея данных для входа на устройство, к которому я подключаюсь. Мой план состоит в том, чтобы попытаться подключиться с пустой строкой в ​​качестве имени пользователя и пароля, а затем использовать исключение, которое оно выдает, чтобы определить, можно ли к нему подключиться или нет. Я считаю, что если он выдает, например, исключение AuthenticationException, он, должно быть, пытался подключиться, но просто определил, что данные для входа в систему недействительны. На данный момент это мой код:

Код: Выделить всё

def ssh(host):
try:
s = paramiko.SSHClient()
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
s.connect(host, username=None, password=None)

except(paramiko.ssh_exception.AuthenticationException,
paramiko.ssh_exception.BadAuthenticationType,
paramiko.ssh_exception.BadHostKeyException,
paramiko.ssh_exception.PasswordRequiredException,
paramiko.ssh_exception.PartialAuthentication):
return True

except Exception as e:
print(e)
return False
Когда я запускаю это, он всегда возвращает false и выводит: «Нет доступных методов аутентификации».

Мои вопросы:
  • Действительна ли эта стратегия для достижения того, чего я хочу?
  • Какие исключения вызваны неверными учетными данными, а какие — более серьезными проблемами, которые могут помешать соединению даже с правильными учетными данными?
  • Какая функция выводит данные на консоль и как это остановить? Я хотел бы обрабатывать сообщения об ошибках самостоятельно.
Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/474 ... nformation

Вернуться в «Python»