Пароль для входа в PowerShell Posh-SSH SCP пуст - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь скопировать файл с помощью скрипта PowerShell со своего сервера Windows на удаленный сервер с SCP. Поэтому я импортирую модуль Posh-SSH. Мне нужно использовать аутентификацию с открытыми / закрытыми ключами. Я использую команду SCP:

Set-SCPFile -ComputerName "RemoteServer" -Credential "Username" -KeyFile "$SSHKeyFile" -RemotePath '$RemotePath' -LocalFile '$OutFile'

Когда я не использую фразу-пароль для пары ключей, я могу оставить пароль пустым и нажать «ОК». Если я использую фразу-пароль, я вводю фразу-пароль в качестве пароля и нажимаю «ОК». Оба варианта работают нормально.

Но так как я хочу запустить это как скрипт, я не могу нажимать «ОК» при каждом запуске скрипта. Поэтому я попытался сохранить учетные данные в переменной. Но тогда Set-SCPFile больше не работает. Я всегда получаю следующее окно запроса учетных данных.

credential request window

Следующий код, как я пытаюсь получить свои учетные данные. Сначала я храню их в файле XML.

Get-Credential | Export-CliXml -Path "$Path"

Файл XML выглядит следующим образом.

<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04">   <Obj RefId="0">
    <TN RefId="0">
      <T>System.Management.Automation.PSCredential</T>
      <T>System.Object</T>
    </TN>
    <ToString>System.Management.Automation.PSCredential</ToString>
    <Props>
      <S N="UserName">User</S>
      <SS N="Password">01000000d08c9ddf0115d1118c7a00c04fc297eb01000000ec5297fe98035547a93461b54a3da81f0000000002000098237490343500c000000010000000cef45e19b6629e6c9daa40d058a72699yxyxasd4800000a0000000000a69badaa01054df9ae2904dd25e2786c100000000104e0e84014aac216b445498d34955914000000dedf7c30caa626f3542c8f1cd068af8d18c0e420</SS>
    </Props>   
   </Obj> 
</Objs>

И тогда я могу импортировать их с помощью следующей команды в сценарии.

$Credentials = Import-CliXml -Path "$Path"

В другом скрипте это работает нормально. Может кто-то помочь мне с этим? Большое спасибо. KR

...