IntelliJ 和 Android Studio - 连接到 Gitlab.com 存储库
IntelliJ and AndroidStudio - connect to Gitlab.com respository
通过 Git UI 和 Turtoise UI 我更新了本地和远程 GIT 存储库。
我想与 Android Studio 和 IntelliJ 中的 gitlab.com 存储库进行交互。我不断收到 401 或读取错误。
在 IntelliJ 中,我尝试通过 VCS > GIT > Remotes 连接到远程存储库并添加了 gitlab.com SSH 条目。
同样在 Android Studio 中,我无法连接到远程存储库。
解决方案:感谢 VonC。我在 Gitlab.com 注册的 SSH 密钥在我的 c:\users\myusername\.ssh 文件夹中。通过 Turtoise 和 GIT UI 我可以直接引用这些文件。
Android Studio 和 IJ IDE 都使用 %HOME% 文件夹来查找 SSH 密钥。此文件夹可能指的是系统的 SSH 文件夹。因为该文件夹中没有可用的 SSH 密钥,所以我一直收到连接错误。
解决方案是创建一个为 IntelliJ 执行以下操作的命令 (.bat) 文件:
set HOME=%USERPROFILE%
c:
cd "C:\Program Files (x86)\JetBrains\IntelliJ IDEA 2016.3.1\bin"
idea.exe
对于 AS:
set HOME=%USERPROFILE%
c:
cd C:\Program Files\Android\Android Studio1\bin
studio64.exe
让我们明确一点:如果您使用的是 https url,并且您的 username/password GitLab.com 帐户,您的 ssh 密钥 nothing处理您的连接尝试:那些 ssh 密钥(无论是否为 puttygen)将被忽略。
对于 https,您需要 GitLab 帐户凭据,如果您的 GitLab 密码中包含特殊字符,则需要 percent encoded ()。
另见“Handling Passwords for Git Remote Repositories”(同样,与 ssh 无关)。
如果您 select "Clone git repositories using ssh"(如 this answer), then, even if Git does not find your ssh keys (or if your public key is not properly registered in your GitLab account),ssh 将能够退回到 username/password 身份验证方案。
在 AS (Andoird Studio) 中使用 ssh urls:
- 当
HOME
(类型 set HOME
)设置为 %USERPROFILE%
、 时,确保在 CMD
会话中启动 AS
- 确保已生成 openssh 密钥,如 described by GitLab and registered to your GitLAb profile, again as described by GitLab。
您必须在 %USERPROFILE%\.ssh
(或 %HOME%\.ssh
)中看到文件 id_rsa
和 id_rsa.pub
。不需要 ppk
puttygen 密钥。
OP 添加:
Ah, the %HOME%
and %USERPROFILE%
pointed to different locations. I set the id_rsa
at %USERPROFILE%
and %HOME%
points to the system folder. So, using the id_rsa.pub
from the C:\WINDOWS\system32\config \systemprofile
should also sufficie?
其实如果HOME指向系统文件夹,说明AS是运行系统账号,或者Git是系统账号安装的
不要:HOME
应该指的是 %USERPROFILE%
,并确保 AS
使用您的帐户启动。
OP 注释:
HOME=%USERPROFILE%
solution also works perfectly for IntelliJ, so it is not only for Android Studio.
我认为您错误地使用 GitLab 项目插件 GitHub 支持并尝试使用 GitLab 凭据向 GitHub 进行身份验证。搜索 GitLab 插件,安装 gitlab projects
:
并使用您可以在帐户设置中找到的 GitLab URL 和 API Key 对其进行配置。
通过 Git UI 和 Turtoise UI 我更新了本地和远程 GIT 存储库。 我想与 Android Studio 和 IntelliJ 中的 gitlab.com 存储库进行交互。我不断收到 401 或读取错误。
在 IntelliJ 中,我尝试通过 VCS > GIT > Remotes 连接到远程存储库并添加了 gitlab.com SSH 条目。 同样在 Android Studio 中,我无法连接到远程存储库。
解决方案:感谢 VonC。我在 Gitlab.com 注册的 SSH 密钥在我的 c:\users\myusername\.ssh 文件夹中。通过 Turtoise 和 GIT UI 我可以直接引用这些文件。
Android Studio 和 IJ IDE 都使用 %HOME% 文件夹来查找 SSH 密钥。此文件夹可能指的是系统的 SSH 文件夹。因为该文件夹中没有可用的 SSH 密钥,所以我一直收到连接错误。
解决方案是创建一个为 IntelliJ 执行以下操作的命令 (.bat) 文件:
set HOME=%USERPROFILE%
c:
cd "C:\Program Files (x86)\JetBrains\IntelliJ IDEA 2016.3.1\bin"
idea.exe
对于 AS:
set HOME=%USERPROFILE%
c:
cd C:\Program Files\Android\Android Studio1\bin
studio64.exe
让我们明确一点:如果您使用的是 https url,并且您的 username/password GitLab.com 帐户,您的 ssh 密钥 nothing处理您的连接尝试:那些 ssh 密钥(无论是否为 puttygen)将被忽略。
对于 https,您需要 GitLab 帐户凭据,如果您的 GitLab 密码中包含特殊字符,则需要 percent encoded (
另见“Handling Passwords for Git Remote Repositories”(同样,与 ssh 无关)。
如果您 select "Clone git repositories using ssh"(如 this answer), then, even if Git does not find your ssh keys (or if your public key is not properly registered in your GitLab account),ssh 将能够退回到 username/password 身份验证方案。
在 AS (Andoird Studio) 中使用 ssh urls:
- 当
HOME
(类型set HOME
)设置为%USERPROFILE%
、 时,确保在 - 确保已生成 openssh 密钥,如 described by GitLab and registered to your GitLAb profile, again as described by GitLab。
您必须在%USERPROFILE%\.ssh
(或%HOME%\.ssh
)中看到文件id_rsa
和id_rsa.pub
。不需要ppk
puttygen 密钥。
CMD
会话中启动 AS
OP 添加:
Ah, the
%HOME%
and%USERPROFILE%
pointed to different locations. I set theid_rsa
at%USERPROFILE%
and%HOME%
points to the system folder. So, using theid_rsa.pub
from theC:\WINDOWS\system32\config \systemprofile
should also sufficie?
其实如果HOME指向系统文件夹,说明AS是运行系统账号,或者Git是系统账号安装的
不要:HOME
应该指的是 %USERPROFILE%
,并确保 AS
使用您的帐户启动。
OP 注释:
HOME=%USERPROFILE%
solution also works perfectly for IntelliJ, so it is not only for Android Studio.
我认为您错误地使用 GitLab 项目插件 GitHub 支持并尝试使用 GitLab 凭据向 GitHub 进行身份验证。搜索 GitLab 插件,安装 gitlab projects
:
并使用您可以在帐户设置中找到的 GitLab URL 和 API Key 对其进行配置。