首先,标准的东西:我在 Windows 10 公司电脑上以我的 Active Directory 用户身份登录。我使用内置的 openssh 和 PS 或 CMD。我使用 ssh-keygen 生成了我的 RSA 密钥,并手动将其添加到我的 GCP 项目中以进行 ssh 身份验证。现在,事情变得棘手了。
当我生成 RSA 时,它会将我的用户名作为“company\username”附加到我的公钥末尾。我知道这是正确的,因为当我运行“whoami”时,它显示相同的内容。当我将此 ssh 密钥添加到我的 GCP 项目时,它也会将其添加为“company\username”;但是,当我输入 ssh user@server 或 ssh company\username@server 时,Windows 会在我的用户名中添加一个额外的反斜杠“\”,导致身份验证失败:
ssh server OR
ssh 'company\username@server'Returns:
company\\username@server: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
我尝试了许多 ssh 命令变体,包括正斜杠、反斜杠、引号,但每次 Windows 都会添加额外的斜杠。
作为一种解决方法,我从我的 ssh 密钥中删除了“company\”部分;并且我将我的 ssh 配置文件修改为以下内容:
Host *
User username
这确实有效 - 但有点混乱;我想知道是否有办法阻止 Windows 插入额外的反斜杠。谢谢
编辑**
做了一些进一步的测试,发现 Windows 上的 OpenSSH 似乎有问题。它甚至试图在密钥生成期间插入额外的反斜杠。我将直接向 Microsoft 报告此问题:
PS C:\Users\username> mkdir ~/test
Directory: C:\Users\username
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 3/6/2020 11:02 AM test
PS C:\Users\username> ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\username/.ssh/id_rsa): ~/test
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Saving key "~/test" failed: No such file or directory
C:\Users\username> ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\username/.ssh/id_rsa): ~\test
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Saving key "~\\test" failed: No such file or directory