这可能是一种非常不寻常的情况,但我想指定在本地计算机上执行shell(git)命令时要使用的私有SSH密钥。
基本上是这样的:
git clone git@github.com:TheUser/TheProject.git -key "/home/christoffer/ssh_keys/theuser"
或者更好(用Ruby):
with_key("/home/christoffer/ssh_keys/theuser") do
sh("git clone git@github.com:TheUser/TheProject.git")
end
我见过使用Net::SSH连接到远程服务器的示例,该服务器使用指定的私钥,但这是一个本地命令。有可能吗?
您需要创建一个~/.ssh/config,如下所示
Host <Your bitbucket server>
User <userid>
Hostname <Your bitbucket server as above>
IdentitiesOnly yes
IdentityFile ~/.ssh/id_rsa<file> This is your private key file
许可如下
-rw------- $HOME/.ssh/config
将公钥添加到git中(cat~/.ssh/id_rsa_b[或类似名称])
然后是git clone,如下所示
git clone ssh://blahblah@blah.com/userid/test.git
在使用GitBash的Windows中,您可以使用以下方法添加存储库
ssh-agent bash -c 'ssh-add "key-address"; git remote add origin "rep-address"'
例如:
ssh-agent bash -c 'ssh-add /d/test/PrivateKey.ppk; git remote add origin git@git.test.com:test/test.git'
哪个私钥在驱动器D中,计算机的文件夹测试。此外,如果您想克隆存储库,可以使用gitclone更改git远程添加源。
在Git Bash中输入此信息后,它会要求您输入密码!
请注意,openssh私钥和putty私钥是不同的!
如果您使用puttygen创建了密钥,则必须将私钥转换为openssh!