PHPStorm密钥对设置使用gitlab

时间:2014-09-04 17:59:20

标签: git phpstorm gitlab openssh

我刚获得了PhpStorm的许可证,我尝试设置密钥对,可以将代码拉到Gitlab,但我找不到在哪里以及如何制作这个代码?我在哪里这样做?问题似乎与PhpStorm没有使用root权限有关。

3 个答案:

答案 0 :(得分:7)

虽然我并不完全确定这是最适合这个答案的地方,但我相信这是其他人在面临试图通过VCS连接到GTPLab PHPStorm时遇到问题的最有可能的地方(或者,实际上,任何JetBrains IDE)。

话虽这么说,我遇到的问题与OP非常相似 - 运行Git Bash时,我没有任何问题通过SSH连接到Git Lab。但是,当尝试通过Git与PHPStorm的VCS连接时,它会永久挂起。

首先,我自己的发现与那些在Windows上运行JetBrain IDE的人有所不同。


解决方案是:

  1. 首先,您必须(显然)have an SSH key createdregistered for your GitLab user account
  2. 正如@Spero.ShiroPetto所提到的,PHPStorm确实利用SSH密钥的标准$ HOME / .ssh目录。所以:
    • 确保您的新生成的密钥文件可从。{h}文件夹中的your home directory获得。
    • PHPStorm还对这些文件使用标准命名约定,因此为了简单起见,请将这些命名为" id_rsa"和" id_rsa.pub"。
  3. (可选)对于您的SSH密钥,create a config file也是一个好习惯。如果您需要有多个键,这将有所帮助。如果您使用非标准SSH端口,或者如果存在与服务器连接相关联的其他非标准参数,那么这是必须的。
  4. 现在,您已准备好打开PHPStorm,但在此之前,请确保以管理员身份运行它。这是必要的,因为当使用VCS for Git时,PHPStorm会在临时目录中创建一个批处理文件。此文件必须可以写入PHPStorm,这可以通过以管理员身份运行应用程序来实现。
  5. 最后,在尝试从GitLab服务器测试/克隆repo之前,您需要设置Git在访问Git时使用它的内置SSH可执行文件。所以:
    • 打开PHPStorm的设置(文件 - >设置或Ctrl + Alt + S)
    • 展开项目设置中的版本控制部分,然后选择Git
    • 确保SSH-Executable设置为" Built-in"。 (当你在这里时,你也可以确保Git可执行文件也正确设置。你可以点击Test按钮来验证这一点)
  6. 如果像OP和我一样,你之前已经能够通过Git Bash连接,那么此时你应该可以连接并使用VCS来满足你的Git需求。

答案 1 :(得分:1)

你可以在shell上创建一对键。因此,请遵循以下instructions。然后将公钥的内容复制到您的GitLab用户帐户。

答案 2 :(得分:0)

我从未使用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连接并提供您的凭据。