我正在尝试连接到驻留在我的Web服务器上的远程Git存储库并将其克隆到我的机器上.
我使用以下格式的命令:
git clone ssh://username@domain.com/repository.git
Run Code Online (Sandbox Code Playgroud)
这对我的大多数团队成员来说都很好.通常在运行此命令后,Git会提示输入用户的密码,然后运行克隆.但是,当在我的一台机器上运行时,我收到以下错误:
主机密钥验证失败.
致命:无法从远程存储库读取.
我们没有使用SSH密钥连接到这个存储库,所以我不确定为什么Git会在这台特定的机器上检查一个.
我在Windows上使用TortoiseGit.当我尝试从标准Windows资源管理器的上下文菜单克隆时,我收到此错误:
请确保您具有正确的访问权限并且存储库存在
更确切地说,终端的快照如下:
git.exe clone --progress -v"git @ arobotdev:\ git\AlfaRobot.git""C:\ Work\AlfaRobot"
克隆到'C:\ Work\AlfaRobot'...
权限被拒绝,请再试一次.
许可被拒绝,请再试一次.
权限被拒绝(公钥,密码).
致命:无法从远程存储库读取.
请确保您具有正确的访问权限
并且存储库存在.
git没有干净地退出(退出代码128)(21450 ms @ 19.09.2014 10:36:58)
我该怎么做才能让git正常工作?
当我在Jenkins中构建时,它会因此错误而失败.任何的想法?
ERROR: Error cloning remote repo 'origin' : Could not clone git@github.com:test/test.git
ERROR: Cause: Error performing command: git clone --progress -o origin
git@github.com:test/test.git /var/lib/jenkins/jobs/test/workspace
Command "git clone --progress -o origin git@github.com:test/test.git
/var/lib/jenkins/jobs/test/workspace" returned status code 128: Initialized empty Git
repository in /var/lib/jenkins/jobs/test/workspace/.git/
No protocol specified
(ssh-askpass:801): Gtk-WARNING **: cannot open display: :0.0
Host key verification failed.
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud) 我使用--sshdocker buildkit 功能,它在本地运行良好。我想在远程服务器上构建 Docker,为此我使用该-A标志来转发我的本地 github 密钥,例如:
ssh -i "server.pem" -A <user>@<server-ip>
Run Code Online (Sandbox Code Playgroud)
然后在服务器终端我运行:
ssh -T git@github.com
Run Code Online (Sandbox Code Playgroud)
我收到“Hello user”消息,这意味着密钥转发工作正常。
(在服务器中,$SSH_AUTH_SOCK确实设置了,我可以git clone)
现在,在本地构建时,我使用:
DOCKER_BUILDKIT=1 docker build --ssh default=~/.ssh/id_rsa -t myimage:latest .
Run Code Online (Sandbox Code Playgroud)
哪个工作正常。
但是在服务器中,私钥在 ~/.ssh/id_rsa 中不存在。那么如何将其转发到 docker build 呢?在服务器上试过这个:
DOCKER_BUILDKIT=1 docker build --ssh default=$SSH_AUTH_SOCK -t myimage:latest .
Run Code Online (Sandbox Code Playgroud)
但它不起作用。错误是:
could not parse ssh: [default]: invalid empty ssh agent socket, make sure SSH_AUTH_SOCK is set
Run Code Online (Sandbox Code Playgroud)
即使SSH_AUTH_SOCK设置
Docker 版本:19.03