Я пытаюсь подключиться через SSH к серверу Windows, используя Paramiko.На сервере есть две учетные записи:
администратор
администратор. DOMAIN
учетная запись администратора - это локальная учетная запись, а администратор. ДОМЕН - сетевая учетная запись надомен.
Интересно, что Paramiko, похоже, не хочет подключаться к учетным записям домена.
Например - это работает в Powershell (минуя домиан):
> ssh DOMAIN\administrator@MYHOST
> DOMAIN\administrator@HOST's password: myPassword
И это работает в Powershell (без домена - вход в локальную учетную запись):
> ssh administrator@MYHOST myPassword
> administrator@HOST's password: myPassword
Это работает в Python Paramiko (без домена - вход в локальную учетную запись):
>client = paramiko.SSHClient()
>client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
>client.connect(hostname='MYHOST', username='administrator', password='myPassword')
This **does not** work in Python Paramiko (passing the domain):
>client = paramiko.SSHClient() >client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
>client.connect(hostname='MYHOST', username='DOMAIN\administrator', password='myPassword')
Кто-нибудь знает способ заставить Paramiko принять домен в аргументе username?Вот ошибка, которую я получаю:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\jmarshall\Desktop\ETL\ETLApp\ETLAppEnv_3_7\lib\site-packages\paramiko\client.py", line 437, in connect
passphrase,
File "C:\Users\jmarshall\Desktop\ETL\ETLApp\ETLAppEnv_3_7\lib\site-packages\paramiko\client.py", line 749, in _auth
raise saved_exception
File "C:\Users\jmarshall\Desktop\ETL\ETLApp\ETLAppEnv_3_7\lib\site-packages\paramiko\client.py", line 736, in _auth
self._transport.auth_password(username, password)
File "C:\Users\jmarshall\Desktop\ETL\ETLApp\ETLAppEnv_3_7\lib\site-packages\paramiko\transport.py", line 1436, in auth_password
return self.auth_handler.wait_for_response(my_event)
File "C:\Users\jmarshall\Desktop\ETL\ETLApp\ETLAppEnv_3_7\lib\site-packages\paramiko\auth_handler.py", line 250, in wait_for_response
raise e
paramiko.ssh_exception.AuthenticationException: Authentication failed.
Socket exception: An existing connection was forcibly closed by the remote host (10054)
>>> client.connect(hostname='HOST', username='DOMAIN\administrator', password='myPassword')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\jmarshall\Desktop\ETL\ETLApp\ETLAppEnv_3_7\lib\site-packages\paramiko\client.py", line 437, in connect
passphrase,
File "C:\Users\jmarshall\Desktop\ETL\ETLApp\ETLAppEnv_3_7\lib\site-packages\paramiko\client.py", line 749, in _auth
raise saved_exception
File "C:\Users\jmarshall\Desktop\ETL\ETLApp\ETLAppEnv_3_7\lib\site-packages\paramiko\client.py", line 736, in _auth
self._transport.auth_password(username, password)
File "C:\Users\jmarshall\Desktop\ETL\ETLApp\ETLAppEnv_3_7\lib\site-packages\paramiko\transport.py", line 1436, in auth_password
return self.auth_handler.wait_for_response(my_event)
File "C:\Users\jmarshall\Desktop\ETL\ETLApp\ETLAppEnv_3_7\lib\site-packages\paramiko\auth_handler.py", line 250, in wait_for_response
raise e
paramiko.ssh_exception.AuthenticationException: Authentication failed.