我在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仅安装软件包?
答案 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帐户。