Cygwin 无法生成 ssh keygen

Cygwin 无法生成 ssh keygen

我想通过 cygwin 生成 ssh-keygen,但输入路径时出现问题(它什么也不做)。

在这里我只需按下回车键,什么也没有发生:

在此处输入图片描述

答案1

我认为您可能没有运行 Cygwin ssh-keygen- 显示什么which ssh-keygen?我的系统上的非 Cygwin ssh-keygen(使用 PuTTY 或 WinSCP 安装,我不记得是哪个)具有相同的行为,但可以与以下程序配合使用:

ssh-keygen -t rsa -f /cygwin64/home/me/.ssh/id_rsa -N "passphrase"

笔记:

  1. 插入您自己的密码,而不是passphrase,或-N ""输入空密码
  2. 该路径的格式很奇怪,根目录为C:。我的 cygwin 安装在,因此本例中C:\cygwin64的密钥位于我的 Cygwin 主目录 ( )。首先进行 Make。~/.ssh.ssh

或者您也可以只安装 Cygwin ssh-keygenwhich ssh-keygen然后应该返回/usr/bin/ssh-keygen

答案2

在 cygwin 路径中使用正斜杠,反斜杠在 linux 中是“转义字符”(因此在 cygwin 中也是如此)

$ cygpath--帮助

cygpath帮助将路径+文件名转换为/从/到 cygwin。

提示:在 cygwin 中使用 Linux 路径,在 windows 中使用 Windows 路径。

未经测试的示例:
$ cygpath -u "C:\Users\User/.shhs/id_rsa" /cygdrive/c/UsersUser/.shhs/id_rsa


您在示例(C:\Users\User/.shhs/id_rsa)中输入的内容最终等于C:UsersUser/.shhs/id_rsa- 这很可能不是您想要的。

“转义字符”会从其后的字符(通常是特殊字符)中取出特殊含义,而将字符保留在输入中的原样(它的含义不止于此,但这里已经足够了)。

例子:

$ echo \$PATH=$PATH
$PATH=...
$

答案3

考虑使用Microsoft 构建的 OpenSSH。 只是下载 OpenSSH-Win32.zip或者OpenSSH-Win64.zip,提取ssh-keygen.exe并使用 – 无需安装,无依赖性(Cygwin 或其他任何东西)。

如果您使用的是 Windows 10 版本 1803 或更高版本,则您已经内置了 OpenSSH。对于较旧的版本,您也可以轻松地将其安装为可选功能 “OpenSSH 客户端”

也可以看看在 Windows 7 上安装 OpenSSH SFTP 客户端

答案4

Tumbleweed 线程,我知道,但我找到了解决方案。问题是它试图使用本机 Windows openssh 二进制文件,目录路径发生冲突。

删除了 Windows openssh 客户端,使用 cygwin 编译的 openssh 二进制文件重新安装了 cygwin,现在它ssh-keygen可以正常工作。

还值得注意的是,其他东西(如 rsync)也可能由于同样的原因而失败。

相关内容