Windows 上的 ssh-copy-id 不起作用:没有这样的文件或目录

Pat*_*ter 4 windows ssh git-bash

我想将公钥从 Windows 系统复制到我的服务器。我遇到的问题是,我没有找到密钥的路径。我尝试过类似的事情:

ssh-copy-id -i C:/Users/username/.ssh/mykey.pub user@serverIP

ssh-copy-id -i ~/.ssh/mykey.pub user@serverIP
Run Code Online (Sandbox Code Playgroud)

结果总是

没有这样的文件或目录

我究竟做错了什么?我在Windows 10上使用Git Bash

Ynj*_*jmh 11

Git 的 ssh 是OpenSSH的一个版本。您可以通过运行来ssh -V确认path\to\git\usr\bin。这是它在我的机器上的评估结果:

OpenSSH_7.7p1, OpenSSL 1.0.2o  27 Mar 2018
Run Code Online (Sandbox Code Playgroud)

ssh-copy-id脚本在内部执行一些 *nix shell 命令(例如execcat等。您可以通过在文本模式下打开下面的命令来找到更多命令path\to\git\usr\bin),因此它仅适用于 *nix 机器。ssh-copy-id这就是为什么underpath\to\git\usr\bin不是可执行文件的原因。

根据PowerShell/Win32-OpenSSH此问题,Windows 上不支持。ssh-copy-id

然而,还有一些替代方法可以完成同样的事情:

这个答案的 powershell 版本可以是

OpenSSH_7.7p1, OpenSSL 1.0.2o  27 Mar 2018
Run Code Online (Sandbox Code Playgroud)

还有一个 python 脚本可以做同样的事情:ssh-copy-id for Windows