Windows 上 ssh-copy-id 的替代品

Windows 上 ssh-copy-id 的替代品

我想将 SSH 公钥复制到 Windows 上的远程设备。我没有使用 PuTTYgen,而是通过 PowerShell 使用 OpenSSH。我运行了

ssh-keygen -t rsa

它在我的 .ssh 文件夹中给了我一个公钥和私钥,但如果我尝试这样做

ssh-copy-id -i ~/.ssh/id_rsa.pub <name@machine>

我犯了同样的错误:

ssh-copy-id:术语“ssh-copy-id”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。

也许 ssh-copy-id 命令是用于 Linux 的,但我能够运行一些其他用于 Linux 的命令。

如何将密钥从 Windows 笔记本电脑复制到远程计算机? 在没有 PuTTYgen 之类的应用程序的情况下,是否可以在 Windows 中执行此操作?

答案1

(假设 id_rsa.pub 存在,就像之前用“ssh-keygen -t rsa”生成的那样)

这句话和下面这句话几乎一模一样:巴洛普没有 cygwin,提到使用 windows 原生 ssh 也可以正常工作......

C:\\> type %USERPROFILE%\\.ssh\\id_rsa.pub | ssh user@host "cat >> .ssh/authorized_keys"

答案2

您实际上要做的就是将 id_rsa.pub 文件的内容添加到 Linux 主机上的 ~/.ssh/authorized_keys 文件中。(您可能需要运行“systemctl restart ssh”。)

然后在您的 Windows 机器上使用 -i 参数:

ssh -i {私钥文件路径}\id_rsa {name}@{machine}

如果您使用了密码,系统将提示您输入密码,否则它将让您直接进入。

答案3

我已经安装了 cygwin,它有 ssh 并且包含 ssh-copy-id(顺便说一下,这是一个脚本)。

$ which ssh-copy-id
/usr/bin/ssh-copy-id

顺便说一句,如果您遇到了类似的错误,那么简化的基本故障排除步骤就是尝试$ ssh-copy-id <ENTER> ,因为您知道它与您在 ssh-copy-id 后输入的所有参数都无关。

本文提到了 ssh-copy-id 的手动方法 https://chrisjhart.com/Windows-10-ssh-copy-id/

type $env:USERPROFILE\.ssh\id_rsa.pub | ssh {IP-ADDRESS-OR-FQDN} "cat >> .ssh/authorized_keys"

他举了一个例子

PS C:\Users\Christopher> type $env:USERPROFILE\.ssh\id_rsa.pub | ssh 192.168.30.31 "cat >> .ssh/authorized_keys"

更多相关信息要使用 ssh-id-copy,您是否需要 id_rsa.pub 和 id_rsa?

相关内容