哪个.ssh/known\u hosts文件被azure中的npm使用?

w80xi6nr  于 2021-06-20  发布在  Kudu
关注(0)|答案(2)|浏览(363)

运行 npm install git+ssh://<git repo url> 从azure应用程序服务示例中的kudu控制台失败,错误如下:

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

人们通常通过将主机的密钥添加到 .ssh/known_hosts 文件。问题是正确的密钥已经存在。如果它不在那里, git clone <git repo url> 会以同样的错误失败,但事实并非如此。它成功地克隆了存储库。
为了调试这个问题,我尝试将ssh的日志级别设置为 DEBUG3 通过 ~/.ssh/config 但输出没有更改(使用 git clone ,打印调试信息)。
因此,我怀疑问题在于 npm 在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
3mpgtkmj

3mpgtkmj1#

以下是在azure应用程序服务上如何处理ssh设置(配置文件、已知主机、公钥/私钥):
ssh配置的默认文件夹是 D:\home\.ssh . 这是kudu调试控制台中ssh和git所使用的。
当您通过 https://your-site.scm.azurewebsites.net/sshkey?ensurePublicKey=1 ,它将创建 D:\home\.ssh 文件夹并放置配置文件 StrictHostKeyChecking no 它(以及新生成的ssh密钥)。这意味着通过调试控制台运行的ssh现在将自动接受hostkeys。
azure应用程序服务上的npm需要中的ssh配置 %USERPROFILE% . 您可以看到,当您第一次在调试控制台中运行npm时,它将创建空文件夹 %USERPROFILE%\.ssh .
为了与npm兼容,kudu的部署脚本将复制 D:\home\.ssh 文件夹到 %USERPROFILE% (见发布/修复)。每次通过web应用程序的本地git存储库、github或触发kudu的任何其他部署选项进行部署时,都应该发生这种情况。
以我的经验,那是 .ssh 文件夹位于 %USERPROFILE% 缩放和重新启动应用程序时将再次删除。
我认为在我的例子中发生的是,在调试另一个npm/git/ssh问题时,我重新启动了web应用程序。然后我在运行时遇到了主机密钥验证问题 npm install 在调试控制台中手动执行。

js81xvg6

js81xvg62#

所以对我来说,问题是我的应用程序服务是通过github部署的,因此在github上有一个与其repo相关联的部署密钥。
为了能够访问我的其他私人回购,我需要做以下几点。
删除部署密钥。
从https://[your web app].scm.azurewebsites.net/api/sshkey?ensurerepublickey=1获取公钥
在github中将密钥添加到我的ssh密钥中。
在此之后,npm会很高兴地安装我的私人回购。

相关问题