gpt4 book ai didi

azure - Azure 中的 npm 使用哪个 .ssh/known_hosts 文件?

转载 作者:行者123 更新时间:2023-12-03 04:30:45 28 4
gpt4 key购买 nike

运行 npm install git+ssh://<git repo url>从 Azure 应用服务实例中的 Kudu 控制台失败并出现以下错误:

npm ERR! Host key verification failed.
npm ERR! fatal: Could not read from remote repository.

often通过将主机的 key 添加到 .ssh/known_hosts 来解决此错误文件。问题是正确的 key 已经存在。如果不存在,git clone <git repo url>会因相同的错误而失败,但事实并非如此。它成功克隆了存储库。

为了调试该问题,我尝试将 SSH 的日志级别设置为 DEBUG3通过~/.ssh/config文件,但输出没有改变(而使用 git clone 时,它会打印调试信息)。

因此,我怀疑问题出在 npm 使用的 SSH 客户端上。在 Azure 中不采用 ~/.ssh目录考虑在内。

我的问题是,这是否记录在某处或者是错误?您知道错误出在哪个组件中吗?

FTR,完整输出为:

npm ERR! git clone --template=D:\local\AppData\npm-cache\_git-remotes\_templates --mirror <git repo url> D:\local\AppData\npm-cache\_git-remotes\git-ssh-<git repo url>-dc8c35134031285cb7109c3e32618e85: Cloning into bare repository 'D:\local\AppData\npm-cache\_git-remotes\git-ssh-<git repo url>-dc8c35134031285cb7109c3e32618e85'...
npm ERR! git clone --template=D:\local\AppData\npm-cache\_git-remotes\_templates --mirror <git repo url> D:\local\AppData\npm-cache\_git-remotes\git-ssh-<git repo url>-dc8c35134031285cb7109c3e32618e85:
npm ERR! git clone --template=D:\local\AppData\npm-cache\_git-remotes\_templates --mirror <git repo url> D:\local\AppData\npm-cache\_git-remotes\git-ssh-<git repo url>-dc8c35134031285cb7109c3e32618e85: Host key verification failed.
npm ERR! git clone --template=D:\local\AppData\npm-cache\_git-remotes\_templates --mirror <git repo url> D:\local\AppData\npm-cache\_git-remotes\git-ssh-<git repo url>-dc8c35134031285cb7109c3e32618e85: fatal: Could not read from remote repository.
npm ERR! git clone --template=D:\local\AppData\npm-cache\_git-remotes\_templates --mirror <git repo url> D:\local\AppData\npm-cache\_git-remotes\git-ssh-<git repo url>-dc8c35134031285cb7109c3e32618e85:
npm ERR! git clone --template=D:\local\AppData\npm-cache\_git-remotes\_templates --mirror <git repo url> D:\local\AppData\npm-cache\_git-remotes\git-ssh-<git repo url>-dc8c35134031285cb7109c3e32618e85: Please make sure you have the correct access rights
npm ERR! git clone --template=D:\local\AppData\npm-cache\_git-remotes\_templates --mirror <git repo url> D:\local\AppData\npm-cache\_git-remotes\git-ssh-<git repo url>-dc8c35134031285cb7109c3e32618e85: and the repository exists.
npm ERR! Windows_NT 6.2.9200
npm ERR! argv "D:\\Program Files (x86)\\nodejs\\4.2.3\\node.exe" "D:\\Program Files (x86)\\npm\\3.5.1\\node_modules\\npm\\bin\\npm-cli.js" "install" "git+ssh://<git repo url>"
npm ERR! node v4.2.3
npm ERR! npm v3.5.1
npm ERR! code 128



npm ERR! Command failed: git -c core.longpaths=true clone --template=D:\local\AppData\npm-cache\_git-remotes\_templates --mirror <git repo url> D:\local\AppData\npm-cache\_git-remotes\git-ssh-<git repo url>-dc8c35134031285cb7109c3e32618e85
npm ERR! Host key verification failed.
npm ERR! fatal: Could not read from remote repository.
npm ERR!
npm ERR! Please make sure you have the correct access rights
npm ERR! and the repository exists.
npm ERR!
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR! <https://github.com/npm/npm/issues>

npm ERR! Please include the following file with any support request:
npm ERR! D:\home\site\foo\npm-debug.log

最佳答案

以下是 Azure 应用服务上处理 SSH 设置(配置文件、已知主机、公钥/私钥)的方式:

  1. SSH 配置的默认文件夹是 D:\home\.ssh 。这就是 Kudu 调试控制台中的 SSH 和 Git 使用的方法。

  2. 当你 trigger host key generation通过https://your-site.scm.azurewebsites.net/sshkey?ensurePublicKey=1 ,它将创建 D:\home\.ssh文件夹并放置一个配置文件 StrictHostKeyChecking no进入其中(以及新生成的 SSH key )。这意味着通过调试控制台运行的 SSH 现在将自动接受主机 key 。

  3. Azure 应用服务上的 npm 需要 %USERPROFILE% 中的 SSH 配置。 。您可以看到,当您第一次在调试控制台中运行 npm 时,它将创建空文件夹 %USERPROFILE%\.ssh .

  4. 为了 npm 兼容性,Kudu 的部署脚本将复制 D:\home\.ssh文件夹到%USERPROFILE% (参见 issue/fix )。每次通过 Web 应用程序的本地 Git 存储库、Github 或触发 Kudu 的任何其他部署选项进行部署时,都应该发生这种情况。

  5. 根据我的经验,复制 .ssh文件夹位于 %USERPROFILE%缩放和重新启动应用程序时将再次删除。

我认为在我的案例中发生的情况是,在调试不同的 npm/git/ssh 问题时,我重新启动了 Web 应用程序。然后,我在运行 npm install 时遇到了主机 key 验证问题。在调试控制台中手动进行。

关于azure - Azure 中的 npm 使用哪个 .ssh/known_hosts 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37182185/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com