将 ssh 连接到域上的用户帐户?
connect ssh to user account on domain?
我正在尝试使用 Paramiko 通过 SSH 连接到 windows 服务器。服务器上有两个帐户:
管理员
administrator.DOMAIN
'administrator' 帐户是本地帐户,'administrator.DOMAIN' 是域上的网络帐户。
有趣的是,Paramiko 似乎不想连接到域帐户。
例如 - 这适用于 Powershell(通过 domian):
> 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 接受用户名参数中的域的方法吗?以下是我收到的错误:
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.
我无法在 windows 上测试这个,但是 username='DOMAIN\administrator'
,你应该试试 username='administrator@DOMAIN'
。
我正在尝试使用 Paramiko 通过 SSH 连接到 windows 服务器。服务器上有两个帐户:
管理员
administrator.DOMAIN
'administrator' 帐户是本地帐户,'administrator.DOMAIN' 是域上的网络帐户。
有趣的是,Paramiko 似乎不想连接到域帐户。
例如 - 这适用于 Powershell(通过 domian):
> 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 接受用户名参数中的域的方法吗?以下是我收到的错误:
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.
我无法在 windows 上测试这个,但是 username='DOMAIN\administrator'
,你应该试试 username='administrator@DOMAIN'
。