我正在尝试在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也会显示相同的错误。
如果有人可以告诉我我在哪里出问题了,将不胜感激。我已经在网上搜索过,但没有找到与此相关的其他参考。
答案 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中的工作方式。