Этот фрагмент кода подключается правильно, если закрытый ключ ssh ИЛИ пароль правильный (сначала он пытается ввести ключ). После успешного подключения, как я могу узнать, какой из них был использован? Возможно ли это даже без предварительной попытки подключения только с помощью ключа (без пароля)? Я не могу найти это в документации Paramiko .
self.client = paramiko.SSHClient()
hostkey = self.ssh_hostkey.split(' ')
self.client.get_host_keys().add(self.ip, hostkey[0], paramiko.RSAKey(data=base64.b64decode(hostkey[1])))
privkey_file = io.StringIO()
privkey_file.write(self.ssh_privkey)
privkey_file.seek(0)
privkey = paramiko.RSAKey.from_private_key(privkey_file)
try:
self.client.connect(
hostname=self.ip,
username='root',
pkey=privkey,
password=self.router_password, # will try private key first, then password
allow_agent=False,
look_for_keys=False,
)
self.last_connect = time.strftime("%Y-%m-%d_%H:%M:%S", time.gmtime())
print_msg(1, "Connected to {}".format(self.nickname))
except paramiko.ssh_exception.AuthenticationException:
self.client = None