PHPStorm 密钥对设置以使用 gitlab

Posted

技术标签:

【中文标题】PHPStorm 密钥对设置以使用 gitlab【英文标题】:PHPStorm keypair setup to use gitlab 【发布时间】:2014-10-29 14:17:15 【问题描述】:

我刚刚获得了 phpStorm 的许可证,我尝试设置密钥对以将代码提取到 Gitlab,但我不知道在哪里以及如何进行此操作?我在哪里做这个?这个问题似乎与 PhpStorm 没有使用 root 权限有关。

【问题讨论】:

【参考方案1】:

虽然我不完全确定这是给出这个答案的最合适的地方,但我相信这是其他人在尝试通过 VCS for PHPStorm 连接到 GitLab 时遇到的问题最有可能出现的地方(或者,真的,任何 JetBrains IDE)。

话虽如此,我遇到的问题与 OP 非常相似——在运行 Git Bash 时,我通过 SSH 连接到 Git Lab 完全没有问题。但是,当尝试通过 Git 与 PHPStorm 的 VCS 连接时,它会永远挂起。

首先,我自己的发现对你们这些在 Windows 上运行 JetBrain IDE 的人来说是隐秘的。


解决办法是:

    首先你必须(显然)have an SSH key created 和registered for your GitLab user account。 正如@Spero.ShiroPetto 所提到的,PHPStorm 确实使用标准的 $HOME/.ssh 目录来存储 SSH 密钥。所以: 确保新生成的密钥文件可从 .ssh 文件夹内的your home directory 获得。 PHPStorm 也对这些文件使用标准命名约定,因此为简单起见,将它们命名为“id_rsa”和“id_rsa.pub”。 (可选) 最好也为您的 SSH 密钥提供 create a config file。如果您需要有多个键,这将有所帮助。如果您使用的是非标准 SSH 端口,或者如果有其他与服务器连接相关的非标准参数,这确实是必须的。 现在,您已准备好打开 PHPStorm,但在此之前,请确保您以管理员身份运行它。这是必要的,因为在使用 VCS for Git 时,PHPStorm 会在您的临时目录中创建一个批处理文件。这个文件必须对 PHPStorm 是可写的,这可以通过以管理员身份运行应用程序来完成。 最后,在尝试从 GitLab 服务器测试/克隆存储库之前,您需要将 Git 设置为在访问 Git 时使用其内置的 SSH 可执行文件。所以: 打开 PHPStorm 的设置(文件->设置或 Ctrl+Alt+S) 在项目设置中展开版本控制部分并选择 Git 确保将 SSH 可执行文件设置为“内置”。 (在这里,您不妨确保 Git 可执行文件也设置正确。您可以点击“测试”按钮来验证这一点)

如果像 OP 和我一样,您之前已经能够通过 Git Bash 进行连接,那么此时您应该能够连接并使用 VCS 来满足您的 Git 需求。

【讨论】:

【参考方案2】:

您必须在外壳上创建一对密钥。因此请遵循这些instructions。然后将公钥的内容复制到您的 GitLab 用户帐户。

【讨论】:

我有密钥对,但如何将它们添加到我的项目中。一开始我有工作,但重新启动IDE后不再工作 您必须将公钥(扩展名.pub)添加到您的 GitLab 用户帐户。因此,转到您的个人资料,切换到 SSH keys 并添加一个新的 SSH 密钥。将公钥的内容复制到此表单中。 我有这个,我和 netbeans 一起使用,它在安装 PhpStorm 和 Netbeans 案例的同一台机器上工作。我购买了这个许可证,因为额外的功能很有希望,但我可以清楚地看到如何管理这个 IDE。 我认为您不必显式将密钥添加到 PHPStormer。我刚刚用 PyCharm(python 版本)对此进行了测试。它将使用 git 和 SSH 的系统设置。您只需从菜单中启用 VCS。 不要依赖可能随时消失的链接。请总结一下步骤。【参考方案3】:

我从未使用过 Netbeans,因此不确定是否将私钥直接添加到 IDE 中,但 PHPStorm 使用标准 Git/SSH 设置。

您使用的是什么操作系统? 如果是 Windows,您在安装 Git (msysgit) 时选择的是 OpenSSH 还是 plink?

PHPStorm 将使用标准 $HOME/.ssh%userprofile%/.ssh - 您可以在此处存储单个 id_rsa 密钥,或者如果您使用多个密钥,则可以将配置添加到 %userprofile%/.ssh/config

PHPStorm 帮助文件中有一些信息 - http://www.jetbrains.com/phpstorm/webhelp/using-git-integration.html#d598046e253

如果您在 Windows 上使用 plink,请确保先连接 PuTTYplink,以便您可以接受服务器的主机密钥..

plink git@gitlab.com:group/repo.git
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 b6:03:0e:39:97:9e:d0:e7:24:ce:a3:77:3e:01:42:09
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.
Store key in cache? (y/n) y
Using username "git".
Server refused to allocate pty
Welcome to GitLab, User!

根据您的设置,使用 ssh-agent 或 Pageant 并添加您的密钥(ssh-add,如果使用 ssh-agent),这样就不会每次都提示您输入密码。

您的另一种选择是通过 https 连接并提供您的凭据。

【讨论】:

以上是关于PHPStorm 密钥对设置以使用 gitlab的主要内容,如果未能解决你的问题,请参考以下文章

text 许可证密钥PhpStorm 8

text 许可证密钥PhpStorm 8

phpstorm怎么格式化代码

phpstorm中怎么把phpscript运行变成Javascript

phpstorm怎么设置快捷键设置

phpstorm对laravel的一些使用技巧