Dizininizin .ssh30 anahtar (15 özel ve 15 genel) içerdiğini varsayalım .
Git'te, belirli bir uzak depoya bağlanmak için hangisinin kullanıldığını kontrol edebilirsiniz?
Dizininizin .ssh30 anahtar (15 özel ve 15 genel) içerdiğini varsayalım .
Git'te, belirli bir uzak depoya bağlanmak için hangisinin kullanıldığını kontrol edebilirsiniz?
Yanıtlar:
.ssh/configDosyadaki aşağıdaki giriş sorunu çözer
host git.assembla.com
user git
identityfile ~/.ssh/whatever
~/.ssh/whateverÖzel anahtarınıza giden yol nerede
Ek olarak, kullanıcı ve ana bilgisayar şuradan alınabilir
git push git@git.assembla.com:repo_name.git
^__ ^_______________
user host
Ssh'nin ayrıntılı modda yürütülmesi, diğer adıyla ssh -v user@host, oturum açmak için hangi anahtar dosyalarının ayrıntılarını da içeren çok sayıda hata ayıklama bilgisi yazdıracaktır.
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/user/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 332
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).
Eğer seyahatseverlerin Git kendi içinde 4. Adım, bu kombine Şimdi eğer SSH yardımı sayfasında , ssh -vT git@github.comsize cevap verebilirim.
Not: -iAnahtarı, komut yürütme sırasında ssh'a hangi anahtar dosyasının kullanılacağını söylemek için de kullanabilirsiniz.
ssh -vv user@host 2> >(grep Offering)- bu işleri kolaylaştıracaktır. Son dosya genel anahtar olmalıdır. Örneğin:debug1: Offering RSA public key: /Users/macbookpro/.ssh/id_rsa
githubile aynı şey değil git.
Üzerinde belirtilmediği sürece .ssh/configvarsayılan özel anahtar dosyasını kullanacaktır.
Varsayılan dosya, ~/.ssh/id_rsaveya ~/.ssh/id_dsaveya ~/.ssh/identityprotokol sürümüne bağlıdır.
Zevkime göre en pratik olduğunu söyleyebilirim:
GIT_SSH_COMMAND='ssh -v' git …
Tabii ki, koşullara bağlı olarak, sadece mevcut SHELL'in ortamına aktarmanız faydalı olabilir, böylece her seferinde manuel olarak eklemek zorunda kalmazsınız. O zaman şu şekilde olur:
export GIT_SSH_COMMAND='ssh -v'
git …
- man gitÖnerildiği gibi Git'in SSH kullanımıyla operasyonlarını etkileyebilecek birkaç çevresel değişken var. man sshSize göre -vseçeneği dağıtırken bazı hata ayıklama bilgileri alabilirsiniz (sadece değil, daha fazlasını merak ediyorsanız kılavuza da bakın).
hangi anahtar kullanılıyor?
Çıktıda şöyle görürdünüz ...
debug1: Offering public key: …
… Qn'inizin cevabı budur.
set GIT_SSH_COMMAND=ssh -v. Bu, ssh-config Inlcude-Path'in Windows'ta böyle bir şey olması gerektiğini anlamama yardımcı oldu: Include /C/Users/YourUserName.ssh/configssh yapmak ve dolayısıyla git, daha sonra örneğin HOST *git / ssh'nin kullandığı kimlik dosyasını belirtmek için bir girdi kullanan bir yapılandırma dosyası kullanmak.
Yana gitsadece kullanır sshbağlamak için, bu hangisi anahtar kullanacak sshuzak ana bilgisayara bağlanmak için kullanmak. Ayrıntılar için ~/.ssh/configdosyaya bakın; hostBlok kullanan IdentityFilekullanımına özel anahtarı belirtmek için yönergesi. ssh_config(5)Manpage tam ayrıntıları içerir.
/etc/ssh/ssh_config
/etc/ssh_config
~/.ssh/configKendiniz yaratabilirsiniz .
Bu süper bir avantaj olabilir, ancak çalıştırdıktan sonra ssh -vT git@github.combana /root/.sshanahtarları kontrol ettiğini gösterdi , ana dizinimi kontrol etmesini bekliyordum ve sonra kök olarak oturum açtığımı fark ettim!
sshsorgulama yöntemlerinin yanı sıra doğru çözümlerdir. Teşekkürler.
Uzak sunucuda sshd_config dosyasını düzenleyin ve LogLevel'i INFO'dan VERBOSE'a değiştirin ve ssh'ı yeniden başlatın.
Artık günlük dosyanız, her bir kullanıcının kimliğini doğrulamak için kullanılan anahtarın parmak izini tutacaktır.
Ubuntu'da bu dosyalar şunlardır:
/etc/ssh/sshd_config
/var/log/auth.log
ancak başka bir dağıtımda farklı olabilirler. Yalnızca konumlarını google'da arayın (örneğin bazıları / var / log / secure kullanın).