подключить SSH к учетной записи пользователя на домене? - PullRequest
0 голосов
/ 10 ноября 2018

Я пытаюсь подключиться через 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.

1 Ответ

0 голосов
/ 10 ноября 2018

Я не могу проверить это на Windows, но вместо этого username='DOMAIN\administrator', вам следует попробовать username='administrator@DOMAIN'.

...