相关疑难解决方法(0)

如何指定在Git上执行shell命令时使用的私有SSH密钥?

也许是一个相当不寻常的情况,但我想指定一个私有SSH密钥,以便在从本地计算机执行shell(git)命令时使用.

基本上是这样的:

git clone git@github.com:TheUser/TheProject.git -key "/home/christoffer/ssh_keys/theuser"
Run Code Online (Sandbox Code Playgroud)

甚至更好(在Ruby中):

with_key("/home/christoffer/ssh_keys/theuser") do
  sh("git clone git@github.com:TheUser/TheProject.git")
end
Run Code Online (Sandbox Code Playgroud)

我见过使用Net :: SSH连接到远程服务器的示例,它使用指定的私钥,但这是一个本地命令.可能吗?

git ssh bash shell

963
推荐指数
25
解决办法
95万
查看次数

登录时启动ssh-agent

我有一个站点作为远程Git repo从Bitbucket.com使用SSH别名拉.我可以在我的服务器上手动启动ssh-agent,但每次通过SSH登录时都必须这样做.

我手动启动ssh-agent:

eval ssh-agent $SHELL
Run Code Online (Sandbox Code Playgroud)

然后我添加代理:

ssh-add ~/.ssh/bitbucket_id
Run Code Online (Sandbox Code Playgroud)

然后它出现在我做的时候:

ssh-add -l
Run Code Online (Sandbox Code Playgroud)

我很高兴去.有没有办法自动化这个过程,所以我不必每次登录都这样做?服务器正在运行RedHat 6.2(Santiago).

git ssh redhat bitbucket ssh-agent

230
推荐指数
8
解决办法
21万
查看次数

在Windows上的Git中切换多个ssh密钥

我需要在我的客户端有多个密钥才能访问Repository托管上的两个不同帐户.请参阅https://redefy.repositoryhosting.com/support - >如何在我的客户端上管理多个密钥对的多个帐户?

我不明白如何在Windows上的Git中的不同ssh键之间进行更改,有人可以帮助我吗?

windows git ssh repository

39
推荐指数
2
解决办法
3万
查看次数

用于Windows的Git SSH客户端和.ssh/config文件的错误路径

我安装了Git-1.7.9-preview20120201.exe,当我尝试通过SSH访问我的存储库时,它失败了.

我调查并发现,如果我运行SSH -T git@myrepo.com,SSH不会加载〜/ .ssh/config,其中定义了自定义端口.

当我尝试SSH -F c:\users\tomas\.ssh\config git@myrepo.com一切都没问题.

我使用了Process Monitor,发现SSH正试图在\\\\.ssh\config这里找到C:\Windows\CSC\v2.0.6\namespace\.ssh.

为什么?

我如何强迫它使用正常路径?%HOMEPATH%\.ssh\config

windows git ssh

37
推荐指数
2
解决办法
5万
查看次数

GitHub错误:密钥已在使用中

我创建了两个GitHub帐户.一个用于我的工作用户,一个用于我个人的自我.我需要赶上一些工作,因此克隆了我的工作回购到我的个人电脑上.为了做简单的"git push origin master"提交而不输入我的用户名和密码,我只想将我的公钥从我的家用电脑添加到工作回购.但是Github给出了这个错误:

Error: Key already use
Run Code Online (Sandbox Code Playgroud)

经过一段谷歌搜索,我遇到了这个链接,其中说明"要解决问题,请从其他帐户或存储库中删除密钥并将其添加到您的帐户"当然,由于我添加了我的家庭公钥,因此存在重复的密钥到github,以便我可以编写自己的个人项目.毕竟我希望能够使用我的工作电脑和个人电脑编码到我的工作回购.

如何在没有Github抛出该错误的情况下添加多个"相同"的公钥,以及为什么在世界上,首先抛出的错误是什么?

git ssh github ssh-keys public-key

34
推荐指数
6
解决办法
2万
查看次数

在msysgit窗口中永久添加SSH密钥

我处于这种情况,我需要我的msysgit用不同的密钥与github交谈.但是git bash坚持使用名为id_rsa的密钥文件.如果我做ssh -vT git@github.com我看到只提供id_rsa.

因此,每当我需要使用任何其他密钥时,我必须完成所有这些,

ssh-agent bash
ssh-add ~/.ssh/mygithubkey
git clone git@github.com:myaccount/myrepo.git
Run Code Online (Sandbox Code Playgroud)

或者在我需要时将其重命名mygithubkeyid_rsa将原始id_rsa备份到另一个文件anotherkey

当然这很痛苦,特别是因为命令历史在常规git bash中也有所不同.

stackoverflow中的其他答案只能帮助我解决上述问题.如果我做

ssh-add ~/.ssh/mygithubkey
Run Code Online (Sandbox Code Playgroud)

直接在我的git bash中,它说无法连接到ssh-agent.如果我做

ssh-agent ssh-add ~/.ssh/mygithubkey
git pull
ssh -vT git@github.com
Run Code Online (Sandbox Code Playgroud)

直接在我的git bash中,它表示权限被拒绝,似乎ssh-add并没有真正永久地添加密钥!在详细模式下查看调试消息时,不会提供添加的密钥.

无论如何,当sshing到github时,永久性地添加一个ssh密钥列表?我是ssh配置中的菜鸟,所以请在答案中详细说明.

git ssh github msysgit

7
推荐指数
1
解决办法
1万
查看次数

如何为我的新gitlab帐户生成新的ssh-key?

我有两个Gitlab帐户.在我的旧帐户中,我添加了一个位于我的计算机上的ssh密钥~/.ssh/id_rsa.pub.

现在我想为我的新Gitlab帐户添加另一个ssh-key.如果没有ssh-keys冲突,我该怎么做?

git ssh-keys gitlab

6
推荐指数
1
解决办法
2万
查看次数

git: includeIf 不使用 git clone

.gitconfig

[user]
    name = Dr.jacky
    email = personal.email@gmail.com
    signingKey = ""
[includeIf "gitdir:/Users/drjacky/Projects/CompanyName/"]
    path = /Users/drjacky/gitconfigcompanyname/.gitconfig
[core]
    excludesfile = /Users/drjacky/.gitignore_global
    autocrlf = input
[difftool "sourcetree"]
    cmd = opendiff \"$LOCAL\" \"$REMOTE\"
    path = 
[mergetool "sourcetree"]
    cmd = /Applications/Sourcetree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\"
    trustExitCode = true
[commit]
    template = /Users/drjacky/.stCommitMsg
    gpgSign = false
[gpg]
    program = gpg
[tag]
    forceSignAnnotated = false

Run Code Online (Sandbox Code Playgroud)

gitconfigcompanyname/.gitconfig

[user]
    name = My Name
    email = my.company.email@company.com

Run Code Online (Sandbox Code Playgroud)

.ssh/配置


# --- Sourcetree Generated ---
Host …
Run Code Online (Sandbox Code Playgroud)

git github ssh-keys git-config

6
推荐指数
1
解决办法
3366
查看次数

如何在〜/ .ssh目录中管理多个ssh密钥

我确定我们都会不时收到此错误:

$ git push origin master
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)

典型的补救方法是简单地创建一个公钥/私钥对,并与您的git主机(在我的情况下为bitbucket,及其指示)共享它

事实是,我有很多账户都要求我有一个公共/私有密钥对(例如,我需要保存一个密钥才能连接到AWS ..等)..所以我要做的就是创建这些密钥并将它们保存在单独的目录中,即

~/.ssh $ find .
./awskeys
./awskeys/id_rsa
./awskeys/id_rsa.pub
./bitbucket
./bitbucket/id_rsa
./bitbucket/id_rsa.pub
Run Code Online (Sandbox Code Playgroud)

但是然后不时弹出此错误..要解决它,我必须将相关密钥移回根目录〜/ .ssh。这对我来说似乎不对。我怎样才能可靠地做到这一点?

git ssh github bitbucket

5
推荐指数
1
解决办法
3055
查看次数

如何将 core.sshCommand 选项传播到子模块更新?

我已经core.sshCommand为存储库设置了选项,以便在使用它时可以使用不同的 ssh 密钥(即sshCommand = ssh -i /path/to/key)。但是,当我运行时git submodule update不考虑此选项:

fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)

有什么方法可以配置存储库以将给定的 ssh 密钥用于自身和任何子模块吗?

git ssh ssh-keys git-submodules

5
推荐指数
1
解决办法
2万
查看次数

Mac OS,使用 Git 生成 SSH 密钥时出错:“没有这样的文件”

我想使用 GitHub 和多个帐户。我正在关注本教程,我需要为我们的第二个 GitHub 帐户生成一个唯一的 SSH 密钥并遇到一个问题:

保存密钥“~/.ssh/id_rsa_nettuts”失败:没有那个文件或目录

有一个非常相似的答案,而答案都是窗口并且不起作用。

代码如下:

$ ls                 
id_rsa      id_rsa.pub  id_rsa_nettuts  known_hosts
$ ssh-keygen -t rsa -C "houReal@gmail.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/hou/.ssh/id_rsa): ~/.ssh/id_rsa_nettuts
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Saving key "~/.ssh/id_rsa_nettuts" failed: No such file or directory
$
Run Code Online (Sandbox Code Playgroud)

提前谢谢了。

git macos ssh

4
推荐指数
1
解决办法
8213
查看次数

如何在Eclipse上使用多个Git SSH密钥?

我看了几个答案和论坛的解决方案,但我找不到一个有效的.

我有这种情况:

  • Eclipse Luna Service Release 2(4.4.2)
  • Ubuntu 14.04 x64
  • 我的~/.ssh文件夹上有两个ssh键
  • 两个bitbucket帐户(一个用于个人项目,一个用于企业)
  • 只能使用我的主键访问的git存储库(〜/ .ssh/id_rsa)
  • 只能使用我的辅助密钥访问的git存储库(〜/ .ssh/other)

我创建了一个~/.ssh/config包含以下内容的文件:

Host bitbucket bitbucket.org
    Hostname bitbucket.org
    IdentityFile ~/.ssh/id_rsa
    IdentityFile ~/.ssh/other
    User git
Run Code Online (Sandbox Code Playgroud)

为了理智,我还添加了第二个密钥ssh-add.运行ssh-add -l列出两个键.

使用命令行时,所有git命令都像魅力一样,具有两个存储库.但是在使用Eclipse时,我总是Invalid remote: origin在尝试使用辅助密钥克隆或从存储库中提取时出错:

Caused by: org.eclipse.jgit.errors.NoRemoteRepositoryException: git@bitbucket.org:myuser/myrepository.git: conq: repository access denied.
Run Code Online (Sandbox Code Playgroud)

我添加了二级密钥Window > Preferences > Network Connections > SSH2 > Private keys,并将GIT_SSH环境变量设置为指向我的ssh可执行文件:

$echo $GIT_SSH
/usr/bin/ssh
Run Code Online (Sandbox Code Playgroud)

我已经多次重启Eclipse甚至操作系统,没有运气.

由于我可以毫无问题地从命令行使用git,我倾向于认为Eclipse存在问题.

如何在Eclipse上使用多个Git SSH密钥?或者如何强制Eclipse在单个项目中使用我的二级密钥?

eclipse git ssh

3
推荐指数
1
解决办法
1244
查看次数