Ответ 1
Я получил ту же ошибку, но когда я вручную добавил папку под программными данными под названием SSH, а затем снова запустил команду, она, похоже, работала
Я пытаюсь установить OpenSSH на Windows Server (стандарт 2012 R2), и я следовал инструкциям в этом месте: https://www.server-world.info/en/note?os=Windows_Server_2012&p=openssh
Я запустил Powershell от имени администратора, и, похоже, все устанавливается правильно до той части, где я пытаюсь сгенерировать ключ хоста SSH, выполнив команду .\ssh-keygen.exe -A
(шаг 7 инструкции).
После выполнения этого он возвращает сообщение об ошибке:
RSA Не удалось сохранить ваш открытый ключ в __PROGRAMDATA __\\ssh/ssh_host_rsa_key.9uX3wf3apv: Нет такого файла каталога "
Та же ошибка также отображается для DSA, ECDSA и ED25519.
Если кто-нибудь может сказать мне, где я иду не так, это будет оценено. Я искал в Интернете и не нашел никаких других ссылок на это.
Я получил ту же ошибку, но когда я вручную добавил папку под программными данными под названием SSH, а затем снова запустил команду, она, похоже, работала
__PROGRAMDATA__
относится к вашей переменной среды PROGRAMDATA
(которая, вероятно, установлена на C:\ProgramData
).
Обычно проще всего открыть командную строку cmd
и набрать
mkdir %PROGRAMDATA%\ssh
или powershell
mkdir $env:ProgramData\ssh
а затем повторно запустите
.\ssh-keygen.exe -A
Вы должны сделать это из командной строки cmd, поскольку powershell запутывает переменную ProgramData.
Сделай это
C:\Program Files\OpenSSH-Win64> powershell.\Install-sshd.ps1 -A
из командной строки, и вам, вероятно, будет хорошо идти.
Если вы хотите, вы можете запустить его как администратор. Это даст ssh-keygen.exe все права, необходимые для самостоятельного создания файлов.
runas.exe /noprofile /user:Administrator .\ssh-keygen.exe
Это установит ключи в C:\Users\Administrator.ssh
Если вы хотите, чтобы ключи были доступны для вашего текущего пользователя или другого пользователя, просто запустите Powershell от имени этого пользователя, щелкнув по нему правой кнопкой мыши и щелкнув Run as Different User
.
Вы не хотите быть в приподнятом Powershell при генерации ключей
OpenSSH запускается от текущего пользователя и проверяет его C:\Users\UserName.ssh. Аналогично тому, как работает SSH в Linux.