Apakah mungkin untuk menentukan kunci yang diteruskan menggunakan direktif IdentityFile di .ssh / config?
Saya mengalami keanehan ini ketika mencoba untuk menyebarkan beberapa kode melalui Capistrano / GIT di server produksi kami. Kunci GIT pribadi dan pekerjaan saya selalu dimuat dalam agen SSH saya dan kebetulan bahwa kunci pribadi saya ditambahkan ke agen terlebih dahulu. Saya menggunakan penerusan agen ketika menggunakan Capistrano sehingga ketika tuan rumah mencoba untuk mengotentikasi operasi `git pull` gagal dengan kesalahan berikut:
GALAT: Izin untuk `beberapa repo` ditolak untuk` pengguna Anda`.
karena mencoba mengotentikasi menggunakan kunci git pribadi saya sebelum mencoba kunci yang sesuai (yang kemudian datang di agen ssh) dan berasumsi bahwa saya sedang mengakses repo asing yang saya tidak punya izin untuk mengakses. Saya berpotensi memberikan akses pengguna pribadi saya ke setiap repo kerja tetapi pada mesin lokal saya, saya bisa mengatasi masalah ini dengan mendefinisikan domain khusus di .ssh / config seperti:
Host personal.github.com
Hostname github.com
User git
IdentityFile ~ / .ssh / some_key
Host work.github.com
Hostname github.com
User git
IdentityFile ~ / .ssh / some_other_key
dan dengan cara ini git tidak pernah bingung. Apakah mungkin untuk membuat aturan .ssh / config untuk kunci yang diteruskan pada kotak produksi saya sehingga mereka selalu tahu kunci mana yang digunakan ketika menarik kode baru? Pada dasarnya saya ingin dapat melakukan:
Host work.github.com
Hostname github.com
User git
IdentityFile some_forwarded_key
Terima kasih!
sumber
ssh -v -T ...
server menerima kunci publik, tetapi kemudian ssh mengatakanNo such identity: /home/name/.ssh/id_rsa: No such file or directory
dan kemudian otentikasi gagal. Saya telah mengaktifkan ForwardAgent di semua konfigurasi saya. Apa yang bisa menjadi masalah?