Пропустить проверку хоста при использовании pscp.exe
У нас есть служба Windows, работающая под учетной записью Windows Local System по умолчанию. Эта служба пытается передать файл на сервер с помощью pscp.exe. Это точная команда, которую мы запускаем:
pscp.exe -batch -r -q -v -l **** -pw **** C:/temp/test my-server-host-name:/bnrr2p3
Обратите внимание на использование параметра --batch, чтобы избежать любых запросов. Теперь это терпит неудачу, потому что имя сервера не было добавлено в список известных хостов со следующей ошибкой:
Looking up host "my-server-host-name"
Connecting to 10.89.3.108 port 22
Server version: SSH-2.0-Sun_SSH_1.1.4
Using SSH protocol version 2
We claim version: SSH-2.0-PuTTY_Release_0.62
Doing Diffie-Hellman group exchange
Doing Diffie-Hellman key exchange with hash SHA-1
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 1024 10:a8:36:6a:be:99:2c:e0:1c:18:80:28:c8:e5:dd:9b
Connection abandoned.
Disconnected: User aborted at host key verification
Lost connection
Google говорит, что мне нужно сначала войти на этот сервер вручную и добавить этот сервер в список. Я могу сделать это, если я запускаю это как определенный пользователь.
Как мне заставить его работать для учетной записи Windows Local System?
2 ответа
Используйте PsExec.exe -i -s cmd в командной строке. Откроется новая командная строка с учетной записью SYSTEM Default. Запустите команду вручную и примите ключ хоста один раз.
Попробуйте это брув ... pscp.exe -v -pw '
- '********' + ' ' + 'C:/temp/test' + ' '
- имя пользователя + '@' + имя хоста + ':'
... вам нужно поставить -pw после всех опций перед спецификацией файла, не забывайте пробелы.