非交互式 git pull 要求输入代理设置的私钥密码

非交互式 git pull 要求输入代理设置的私钥密码

目标:使用 child-process 模块以非交互方式通过 nodejs 脚本拉取 github repo

设置:在我的 Linux 机器上,我已经设置了 github 来使用 ssh,这样我就可以使用 ssh 代理来拉取和推送而不需要输入密码

问题:当我的 nodejs 脚本尝试拉取时,它会要求输入我的私钥的密码。由于我希望它自行运行,所以这没有帮助。我以为代理会在这里代表我行事。特别是考虑到脚本以我的用户身份运行。显然我错了。请记住,“git pull”只是以交互方式拉取,通常不需要密码,我的设置是通过 ssh 进行的

问题:脚本的这一部分适用于 https 设置,但我感兴趣的是,当我运行 ssh 时,我需要进行哪些更改才能运行此脚本?

抱歉,我确信这个问题之前已经以某种形式被问过了,但是如果不遇到无法设置 ssh 的问题,搜索这个问题有点困难

答案1

如果 SSH 密钥上有密码,则总会在某个时候询问。但是 SSH 会缓存该密码,因此交互式用户不需要经常重新输入密码。

SSH 上的密码可保护 SSH 密钥,以防其被盗(系统被黑客入侵、笔记本电脑被盗、备份磁盘被盗)。在某些情况下,保护密码并没有什么用,这时可以使用无密码的 SSH 密钥。

相关内容