Windows上的OpenSSH-“ XXX无法在__PROGRAMDATA__中保存您的公钥

时间:2018-07-19 10:04:07

标签: windows-server-2012-r2 openssh

我正在尝试在Windows Server(2012 R2标准)上安装OpenSSH,并且我一直按照以下说明进行操作:https://www.server-world.info/en/note?os=Windows_Server_2012&p=openssh

我以管理员身份运行Powershell,并且似乎都可以通过运行命令.\ssh-keygen.exe -A(说明的第7步)正确地安装到尝试生成SSH主机密钥的部分。 运行此命令后,它返回一条错误消息:

  

RSA无法将您的公共密钥保存在__PROGRAMDATA __ \\ ssh / ssh_host_rsa_key.9uX3wf3apv:否这样的目录文件

DSA,ECDSA和ED25519也会显示相同的错误。

Screenshot of errors

如果有人可以告诉我我在哪里出问题了,将不胜感激。我已经在网上搜索过,但没有找到与此相关的其他参考。

4 个答案:

答案 0 :(得分:19)

我遇到了同样的错误,但是当我在名为SSH的programdata下手动添加一个文件夹,然后再次运行该命令时,它似乎可以正常工作

答案 1 :(得分:14)

__PROGRAMDATA__引用您的环境变量PROGRAMDATA(可能设置为C:\ProgramData)。

通常最简单的方法是打开cmd命令提示符并键入

mkdir %PROGRAMDATA%\ssh

然后重新运行

.\ssh-keygen.exe -A

答案 2 :(得分:0)

由于powershell弄乱了ProgramData变量,因此必须在cmd提示符下执行此操作。

执行此操作

  

C:\ Program Files \ OpenSSH-Win64> powershell。\ install-sshd.ps1 -A

在命令提示符下,您可能会很好。

答案 3 :(得分:0)

如果需要,可以以管理员身份运行它。这将赋予ssh-keygen.exe自行创建文件所需的所有权限。

runas.exe /noprofile /user:Administrator .\ssh-keygen.exe

这会将密钥安装在C:\ Users \ Administrator.ssh下

如果您希望当前用户或另一个用户可以访问这些密钥,只需以右键单击该用户并单击Run as Different User,以该用户身份运行Powershell。

您不想在生成密钥时进入高架Powershell

OpenSSH从当前用户运行,并检查其C:\ Users \ UserName.ssh。类似于SSH在Linux中的工作方式。