使用ssh从git安装时,npm卡住了

5
我正在尝试从我们的服务器安装一个来自git仓库的npm包。当我执行以下命令:npm i git+ssh://username@domain.domain/path/to/rep时,我卡在了

⸨░░░░░░░░░░░░░░░░░░⸩ ⠧ rollbackFailedOptional: verb npm-session 42afea5547108748

它只是停止工作,没有显示任何错误。

提前致谢

编辑:

  • 操作系统:MacOS Mojave
  • Shell:zsh
  • 认证:我有一个私钥,需要输入密码。或者,我可以手动输入用户密码 - 澄清一下,我实际上并没有进行身份验证。我假设它会提示我。我该如何做?
  • 命令提示符:VS Code集成终端,最新版本(不确定是否是所请求的信息)

如果我快速按下回车键,我会得到以下输出(请注意第1行):

Enter passphrase for key '/Users/elias/.ssh/shop_dev': -session dfa32709de1392f7
⸨░░░░░░░░░░░░░░░░░░⸩ ⠧ rollbackFailedOptional: verb npm-session dfa32709de1392f7
⸨░░░░░░░░░░░░░░░░░░⸩ ⠧ rollbackFailedOptional: verb npm-session dfa32709de1392f7
⸨░░░░░░░░░░░░░░░░░░⸩ ⠧ rollbackFailedOptional: verb npm-session dfa32709de1392f7
⸨░░░░░░░░░░░░░░░░░░⸩ ⠧ rollbackFailedOptional: verb npm-session dfa32709de1392f7

但是当我输入密码时没有响应。无论是证书密钥还是用户密码都不行。


1
你的操作系统和bash /命令提示符类型和版本是什么?你如何进行身份验证?我怀疑可能存在问题或不可见的凭据提示。 - G. Stoynev
添加了一些信息。很抱歉我没有怀疑问题可能是ssh引起的。 - Elias
@G.Stoynev 顺便说一下,我也怀疑有问题 :P - Elias
2个回答

3
在不同的操作系统和不同的bash中出现了完全相同的问题。请参见此链接:npm install not prompting passphrase required - 当挂起时,您可以尝试输入密码短语。或者,如果可能,请另一种方式诊断它,临时创建并尝试一下没有密码保护的密钥。如果可以工作,那么您必须查看哪个组件充当您的ssh身份验证代理(ssh-agent?)。在我的情况下,我重新配置了VSCode使用一个不同的bash - 一个我知道对我的密码保护密钥友好的bash。也许这个链接会给你一些指示:Generating a new SSH key and adding it to the ssh-agent
在你的情况下(MacOS),看起来你可能想要寻求帮助提供交互的工具是sshpass (enter link description here)。
既然你确认无密码密钥可以正常工作,假设你正在交互式地执行此操作(用于脚本选项不同),那么你至少有以下三个选项:
1. 找出如何在“挂起”时输入密码短语(如果可能的话),一些人表示可以 - 参见上面的错误链接。
2. 使用与您的shell兼容的代理;对我起作用,但我不喜欢有那个额外的“代理”。相反,我选择了...
3. 重新配置VS Code使用一个不同的shell - 一个友好于密码保护密钥交互的shell。对我起作用的是我git安装包中包含的bash。
在你的情况下(MacOS),看起来你可能想要寻求帮助提供交互的工具是sshpass (enter link description here)。

哼,"如果你能的话",我可以做到,但我不应该这样做。甚至使用密钥认证而不必输入密码都是一种挑战:/ - Elias
在我的问题中添加了一些东西。 - Elias
实际上我一直按我的键盘,然后它继续工作。现在我卡在了 ⸨ ░░░░░░░░░░░⸩ ⠴ extract:module-name: timing audit body Completed in 1ms - Elias
这真的很烦人 -.- - Elias
很抱歉告诉你,但这个问题似乎是全局性的。它既不能在bash中工作,也不能在普通的Mac OS终端中工作。尽管如此,我还是会为你的努力点赞:)。另外,关于ssh-agent的问题是它保存了我们不想要的密码。因此,sshpass也并不真正符合我们的需求。 - Elias
显示剩余2条评论

1

我曾经遇到过同样的问题,这个GitHub帖子非常详细地解释了如何轻松解决它。

你只需要将以下行添加到此文件~/.ssh/config中即可:

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/{your private key file name}

但是您仍然需要输入身份的密码... - Elias
至少在第一次使用时。但也许对于MacOS或任何其他支持某种类型的秘密存储并与ssh-agent集成的桌面环境来说,这是一个合理的解决方法。 - Elias

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接