如何通过SSH安装私有NPM软件包

时间:2020-04-16 03:12:00

标签: git github npm

我在GitHub上有一个私人仓库,发布一个软件包。我向私有存储库添加了部署密钥。

我正在尝试从其他地方安装此仓库,并遇到问题。

首先,我在GitHub上的用户帐户下创建了具有读取访问权限的个人访问令牌。然后,在要安装私有存储库的存储库中,添加了一个.npmrc文件,如下所示:

strict-ssl=true
@my-org:registry=https://npm.pkg.github.com/
//npm.pkg.github.com/:_authToken=MY_GITHUB_PAT

完成后,我可以通过以下方式成功安装:

npm install @my-org/private-repo

但是,由于各种原因,我需要通过ssh安装。如何才能做到这一点?我尝试过:

npm install git+ssh://git@github.com:my-org/private-repo.git

但这只会安装存储库,而不是软件包。在我的库中,程序包具有构建工件,例如缩小的文件等。

是否可以通过ssh仅安装软件包?

2 个答案:

答案 0 :(得分:1)

指定GIT_SSH_COMMAND变量。

GIT_SSH_COMMAND='ssh -i ~/.ssh/<your private key>' npm install git+ssh://git@github.com:my-org/private-repo.git

答案 1 :(得分:0)

个人访问令牌

个人访问令牌用于https访问。 ssh访问github不会使用它们。要进行ssh访问,您需要将公共密钥提供给github。

请注意,私钥/公钥认证对于ssh是可选的。很多人使用密码身份验证来代替,因此默认情况下,许多ssh安装实际上不会为您生成私钥/公钥对。如果您已安装openssh(与大多数unixen一样),则可以运行以下命令来生成私钥/公钥对:

ssh-keygen

按照命令行上的说明进行操作,它将生成github所需的文件。旁注:如果您想在自动脚本中使用此证书,建议您生成不带密码的私钥。否则,每次您访问github时,它都会提示您输入密码。

如果不进行更改,ssh-keygen将在$HOME/.ssh/id_rsa.pub处生成您的私钥。这是您需要上传到github来访问您的私人仓库的文件。

注意:如果您不使用openssh,请在ssh软件文档中搜索有关如何生成和访问公钥的信息。

要将您的公钥登录名上载到github上的帐户,请转到您的个人资料(您的头像在右上角),然后单击“设置” 。然后点击“ SSH和GPG密钥”

由于您的ssh私钥/公钥对特定于您计算机上的openssh,因此您将需要在要从其访问github的所有计算机上重复上述所有步骤。您可以将密钥复制到另一台计算机上并将其放置在.ssh文件夹中,但这不是一个好主意。单独机器的单独密钥意味着您可以轻松地管理哪些机器可以从github网站访问您的github帐户。