Невозможно связаться с сервером, когда я SSH в Powershell, используя ключ RSA - PullRequest
0 голосов
/ 04 декабря 2018

Я работаю над сценарием, который входит в виртуальную машину, подключенную к моей AD, для выполнения некоторых административных функций.Сценарий будет запущен приложением, запущенным на хосте Linux.Я установил PowerShell Core и модуль PowerShell для Windows-совместимости, чтобы я мог войти через SSH.Я могу успешно войти в систему и запустить мой сценарий, если я использую пароль, но если я вхожу в систему с использованием ключа RSA, я получаю эту ошибку при импорте AD:

Невозможно связаться с сервером.Это может быть связано с тем, что этот сервер не существует, в данный момент не работает или на нем не запущены веб-службы Active Directory.

  • CategoryInfo: ResourceUnavailable: (:) [Get-ADComputer], ADServerDownException
  • FullyQualifiedErrorId: ActiveDirectoryServer: 0, Microsoft.ActiveDirectory.Management.Commands.G0ADCommander.GetADCC

  • PSComputerName: localhost

Сценарий на хосте Linux выглядит примерно так:

#!/bin/bash

ssh ad\\ad-user@windows-host-ip \
    -o IdentitiesOnly=yes \
    -i ./id_rsa \
    "C:\\pwsh\\pwsh.exe -c C:\Users\ad-user\Scripts\ad-management-script.ps1"

И ad-management-script.ps1 выглядит примерно так:

Import-WinModule ActiveDirectory
Get-ADUser -Identity ad-user

Как я уже говорил ранее: это работает отлично, если я оставляю ключ выключенным и ввожу пароль, но при этом я получаю сообщение об ошибке, о которой упоминал выше, если я использую ключ.

Другие примечания: Независимо от того, какой метод я использую для входа, я получаю эти значения из $ env:

> $env:username
ad-user
> $env:userdomain
ad

Заранее благодарен за любые рекомендации.

1 Ответ

0 голосов
/ 07 декабря 2018

Согласно краткому поиску в Google, похоже, что у людей возникают похожие проблемы с модулем ActiveDirectory при удаленном доступе к машине с Windows.Не уверен, что предлагаемые обходные пути применимы к вашему случаю.Однако есть альтернативы для использования этого модуля.Попробуйте варианты ниже и посмотрите, работает ли какой-либо из них.

1.В Powershell (не ядре):

$ user = "someuser"

$ searchByUser = "(& (objectCategory = person) (objectClass = organizPerson) (samaccountname = $ user)) "

([adsisearcher] $ searchByUser) .indOne (). Свойства

2.DSQUERY (в CMD нет необходимости в powershell)

dsquery * -фильтр "samaccountname = someuser"

3.NET (в CMD)

net user SOMEUSER / domain

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...