Git'te kabuk komutu çalıştırırken kullanılacak özel SSH anahtarı nasıl belirtilir?
Belki alışılmadık bir durum ama yerel bilgisayardan bir kabuk (git) komutu çalıştırırken kullanmak için özel bir SSH anahtarı belirtmek istiyorum.
Temel olarak böyle:
git clone git@github.com:TheUser/TheProject.git -key "/home/christoffer/ssh_keys/theuser"
Ya da daha iyisi (Ruby'de):
with_key("/home/christoffer/ssh_keys/theuser") do
sh("git clone git@github.com:TheUser/TheProject.git")
end
Net::SSH ile belirli bir özel anahtar kullanan uzak bir sunucuya bağlanma örnekleri gördüm, ancak bu yerel bir komut. Bu mümkün müdür?
954
3
Bunun gibi bir şey işe yarayacaktır (orip tarafından önerilmiştir):
alt kabukları tercih ediyorsanız, aşağıdakileri deneyebilirsiniz (daha kırılgan olsa da):
Git, aracısını ortam değişkenine göre bulacak olan SSH'yi çağıracaktır; bu da anahtarı yükleyecektir.
Alternatif olarak,
HOME
olarak yalnızca.ssh
dizini içeren bir dizin kurmaya istekli olmanız koşuluyla,HOME
ayarı da işe yarayabilir; bu bir identity.pub veya IdentityFile ayarı içeren bir config dosyası içerebilir.my_git_ssh_wrapper'ın içeriği:
Daha sonra anahtarı kullanarak yapabilirsiniz:
GIT_SSH ortam değişkenini kullanabilirsiniz. Ancak ssh ve seçenekleri bir kabuk betiğine sarmanız gerekecektir.
Git kılavuzuna bakın: Komut kabuğunuzda
man git
.