"Sign_and_send_pubkey: imzalama başarısız oldu: aracı işlemi reddetti" nasıl çözülür?


114

SSH anahtarlarıyla yeni bir Dijital Okyanus damlacığını yapılandırma. Çalıştırdığımda ssh-copy-idşunu elde ederim:

ssh-copy-id user@012.345.67.89
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
sign_and_send_pubkey: signing failed: agent refused operation
user@012.345.67.89's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'user@012.345.67.89'"
and check to make sure that only the key(s) you wanted were added.

Ancak, daha sonra ssh yapmayı denediğimde, bu olur:

ssh user@012.345.67.89
sign_and_send_pubkey: signing failed: agent refused operation
user@012.345.67.89's password: 

Şifreyi girdikten sonra gayet iyi oturum açtım, ancak bu elbette ilk başta SSH anahtarını oluşturma amacını ortadan kaldırıyor. Ssh-agent sunucu tarafına bir göz atmaya karar verdim ve işte elde ettiğim şey:

user@012.345.67.89:~# eval `ssh-agent -s`
Agent pid 5715
user@012.345.67.89:~# ssh-add -l
The agent has no identities.

user / .ssh / yetkili_keys, ssh-rsa anahtar girişi de içermez, ancak find -name "keynamehere"hiçbir şey döndürmez.

Yanıtlar:


201

Çalıştırmak ssh-add SSH anahtarını ekleyen istemci makinede .

ssh-add -lGerçekten eklendiğini (tekrar istemcide) ile onaylayın .


7
Tanrım, bunu düzeltmek için iki saat harcadım ve hepsi buydu! Bitbucket ve acquia ssh bağlantıları düzeltildi
Ronnie

19
gpg-agentSSH işlevselliği için kullandığım için burada tamamen düzeltmedi . Zaten bir enable-ssh-supportgiriş var gpg-agent.confama yine de aynı hata mesajım var. Bunu çalıştırmak için posta listesinde buldum gpg-connect-agent updatestartuptty /bye:: bugs.debian.org/cgi-bin/bugreport.cgi?bug=835394
Roland

1
Sadece gpg-agent'ı öldürüp tekrar çalıştırmam gerekiyordu.
Subin

3
Yeni bir SSH anahtarı oluşturduğunuzda, yeni özel anahtardan haberdar olmak ssh-addiçin çağrılmalıdır ssh-agent( linux.die.net/man/1/ssh-agent başına ).
alex

Mükemmel! SSH anahtarımı yeniden oluşturdum ve bu olmaya başladı. Çalıştıktan sonra ssh-add! Teşekkürler.
hbobenicio

66

Fedora 26'yı 28'e yükselttikten sonra aynı sorunla karşılaştım. Ve aşağıdaki günlükler eksikti

/var/log/secure
/var/log/messages

KONU:

antop@localmachine  ~  ssh root@ocp1.example.com
sign_and_send_pubkey: signing failed: agent refused operation
root@ocp1.example.com's password:

hata mesajı gerçek sorunu göstermiyor. Sorun çözen

chmod 700 ~/.ssh
chmod 600 ~/.ssh/*

Benim .ssh/el kendim yarattığı çünkü gerekli izinleri yoktu.
Brent Bradburn

1
Görünüşe göre bazı sürümler anahtarlarınızın diğer kullanıcılar tarafından görülmesine izin vermiyor. Teşekkürler!
alan ocallaghan

.ssh / * dosyaları aynı kullanıcı tarafından oluşturulursa (root değil) gerekli izinlere sahip olacağından endişelenmemize gerek yok.
Anto

1
Seni takdir etmeliyim Bu problemle şimdi karşılaştım. Yönteminizi kullanmak sorunu çözdü.
Kara

56

Linux Ubuntu 18'de de aynı sorunu yaşıyordum . Ubuntu 17.10 güncellemesinden sonra , her git komutu bu mesajı gösterecektir.

Bunu çözmenin yolu, id_rsave üzerinde doğru izne sahip olduğunuzdan emin olmaktır id_rsa.pub.

Kullanarak mevcut chmod numarasını kontrol edin stat --format '%a' <file>. Olması gereken 600 için id_rsa ve 644 için id_rsa.pub.

Dosyaların kullanım iznini değiştirmek için

chmod 600 id_rsa
chmod 644 id_rsa.pub

Bu, güncellemeyle ilgili sorunumu çözdü.


3
Ubuntu'yu 16.04 LTS'den 18.04 LTS'ye taşıdıktan sonra bu sorunla karşılaştım, bu çözüm benim için çalıştı.
Munish Chandel

Aynı burada, Ubuntu'yu 18.04'e güncelledikten sonra bu sorunla karşılaştım. Bu çözüm onu ​​düzeltir.
Cartucho

id_rsa.pubİstemci kimlik doğrulama sürecinde ne zaman kullanılır?
Dimitri Kopriwa

Çok fazla anahtarınız varsa, içinde ~/.sshchmod 600 id_*
şuna

11

Bu sorunu çözmek için aşağıdaki komutu çalıştırın.

Benim için çalıştı.

chmod 600 ~/.ssh/id_rsa

8

Ssh-aracım olarak gpg-agent'ı kullanırken ve ssh anahtarım olarak bir gpg alt anahtarı kullanırken hata oluştu https://wiki.archlinux.org/index.php/GnuPG#gpg-agent .

Sorunun, sway yapılandırmamda kullanılan uyku + kilit komutumun neden olduğu gpg için geçersiz bir pin giriş tty'ye sahip olmasından kaynaklandığından şüpheleniyorum

bindsym $mod+Shift+l exec "sh -c 'gpg-connect-agent reloadagent /bye>/dev/null; systemctl suspend; swaylock'"

ya da sadece uyku / askıya alma

Sorunu çözmek için pin giriş tty'yi sıfırlayın

gpg-connect-agent updatestartuptty /bye > /dev/null

ve sallanma uyku + kilit komutum için düzeltme:

bindsym $mod+Shift+l exec "sh -c 'gpg-connect-agent reloadagent /bye>/dev/null; systemctl suspend; swaylock; gpg-connect-agent updatestartuptty /bye > /dev/null'"


1
Teşekkür ederim. Birkaç gün önce bu problemi yaşadım, sizin gibi gpg kullanıyorum ve gpg-connect-agent updaterstartuptty /bye > /dev/null~ / .zshrc'm hakkında yorumda bulundum , bu satırın yorumlanmaması sorunumu çözdü.
J.Adler

4

Bu hataya:

# git pull
sign_and_send_pubkey: signing failed: agent refused operation
git@github.com: Permission denied (publickey).    
fatal: Could not read from remote repository.

Please make sure you have the correct access rights and the repository exists.

Genel anahtarı Github hesabı> profil> ssh içinde doğrulayın veya tekrar ekleyin.

Ben şöyle çözdüm:

# chmod 400 ~/.ssh/id_rsa

# ls  ~/.ssh/id_rsa -ls  
4 -r--------. 1 reinaldo reinaldo 1679 Jul 26  2017 /home/reinaldo/.ssh/id_rsa

# git pull                                 
remote: Counting objects: 35, done.
remote: Compressing objects: 100% (19/19), done.
remote: Total 35 (delta 9), reused 34 (delta 9), pack-reused 0
Unpacking objects: 100% (35/35), done.

Teşekkür ederim.


2

SSH hatasını almanın çeşitli nedenleri olabilir:

sign_and_send_pubkey: imzalama başarısız oldu: aracı işlemi reddetti

Bazıları diğer cevaplarda vurgulanan konularla ilgili olabilir (bu konu cevaplarına bakın), bazıları gizlenebilir ve bu nedenle daha yakından inceleme gerektirebilir.

Benim durumumda aşağıdaki hata mesajını alıyorum:

sign_and_send_pubkey: imzalama başarısız oldu: aracı işlemi reddetti

user@website.domain.com: İzin reddedildi (publickey, gssapi-keyex, gssapi-with-mic)

Gerçek sorunu bulmanın tek yolu, çok sayıda hata ayıklama bilgisinin yazdırılmasına neden olan -v ayrıntılı seçeneğini :

debug1: Connecting to website.domain.com [xxx.xxx.xxx.xxx] port 22.
debug1: Connection established.
debug1: identity file /home/user/.ssh/id_rsa.website.domain.com type 0
debug1: key_load_public: No such file or directory
debug1: identity file /home/user/.ssh/id_rsa.website.domain.com-cert type -1

Lütfen satırın söylediğine dikkat edin key_load_public: No such file or directory satırın bir önceki satırı değil, sonraki satırı ifade .

Öyleyse, SSH'nin gerçekten söylediği şey, adlı genel anahtar dosyasını bulamamasıdır. id_rsa.website.domain.com-cert benim durumumda sorun olarak göründüğü, çünkü genel anahtar -certdosyamın soneki içermediğidir .

Uzun lafın kısası: Benim durumumdaki düzeltme, yalnızca genel anahtar dosyasının beklendiği gibi adlandırıldığından emin olmaktı. Bağlantıda hata ayıklamadan bundan asla şüphelenemezdim.

Sonuç olarak , neyin yanlış olduğunu anlamak için SSH VERBOSE MODUNU KULLANIN (-v seçeneği), çeşitli nedenler olabilir, hiçbiri bu / başka bir iş parçacığında bulunamaz.


0

Bu daha çok bir Süper Kullanıcı sorusu olmalıdır.

Doğru, MacOSX SourceTree'de de aynı hatayı görüyorum, ancak bir iTerm2 terminalinin içinde işler gayet iyi çalışıyor.

Ancak sorun şu ki, çalışan iki ssh-agent s var ; (

İlki /usr/bin/ssh-agent(aka MacOSX'ler) ve ardından HomeBrew de /usr/local/bin/ssh-agentçalışıyor.

SourceTree'den bir terminali çalıştırmak, farklılıkları görmemi sağladı SSH_AUTH_SOCK, kullanarak lsofiki farklı ssh-agents buldum ve sonra anahtarları (kullanarak ssh-add) sistemin varsayılanına ssh-agent(yani /usr/bin/ssh-agent) yükleyebildim (yani ), SourceTree yeniden çalışıyordu.


0

Evet. İstemci makinede ssh-add'ı çalıştırın . Ardından ssh-copy-id userserver@012.345.67.89 komutunu tekrarlayın.


0

Benim için sorun, genel anahtarın Gitlab'a yanlış kopyalanması / yapıştırılmasıydı. Kopya fazladan bir getiri sağladı. Yapıştırdığınız şeyin tek satırlık bir anahtar olduğundan emin olun.


0

Ben sign_and_send_pubkey: signing failed: agent refused operationde bir hata aldım . Ama benim durumumda sorun yanlış bir pinentryyoldur.

Benim içinde mülkiyet eski pinentry yoluna işaret ediyordu. Oradaki yolu düzeltip yeniden başlatmak benim için düzeltildi.${HOME}/.gnupg/gpg-agent.confpinentry-programgpg-agent

Günlükleri takip ederek keşfettim journalctl -f. Yanlış yolu içeren aşağıdaki gibi günlük satırları burada:

Jul 02 08:37:50 my-host gpg-agent[12677]: ssh sign request failed: No pinentry <GPG Agent>
Jul 02 08:37:57 my-host gpg-agent[12677]: can't connect to the PIN entry module '/usr/local/bin/pinentry': IPC connect call failed


0

Benim durumumda sorun, GNOME anahtarlığının ssh anahtarının kullanılması için geçersiz bir parola tutmasıydı. Bu sorunu gidermek için uygunsuz miktarda zaman harcadıktan sonra koştum seahorseve boş dizeyi tutan girişi buldum. İlk önce bir süre önce parolanın yanlış yazılmasından ve ardından komut satırına geri dönmek için muhtemelen istemciyi iptal etmesinden kaynaklandığını tahmin edebiliyorum. Girişin doğru parola ile güncellenmesi sorunu hemen çözdü. Bu girişi silmek ("oturum açma" anahtarlığından) ve bu ilk istemde parolayı yeniden girmek (ve uygun onay kutusunu işaretlemek) bunu da çözer. Artık ajan, "oturum açma" adlı oturum açma anahtar halkasından doğru parolayı alıyor ve artık ne parola soruyor ne de "işlemi reddediyor". Tabii ki YMMV.


0

Burada ne işe yaradı: müşteride

1) ssh-ekle

2) ssh-copy-id kullanıcı @ sunucu

Anahtarlar bir süre önce düz "ssh-keygen -t rsa" ile oluşturuldu çünkü önce ssh-add çalıştırmadan istemciden sunucuya (ssh-id-copy ile) ssh ortak anahtarımı kopyaladığım için hata mesajını gönderdim. hatalı bir şekilde onları bir süre önce eklediğimi varsaydığım için.


0

Son zamanlarda "modern" ssh sürümüne [OpenSSH_8.1p1, OpenSSL 1.1.1d FIPS 10 Eylül 2019] yükseltme yapanlar için hızlı not - fedora 31 ile birlikte verilir, artık eski DSA SHA256 anahtarlarını kabul etmiyor gibi görünüyor (benimki 2006 tarihli!) - yeni bir rsa anahtarı oluşturdu, yetkilendirilmişe genel eklendi, istemciye özel ve her şey mükemmel çalışıyor.

önceki öneriler için teşekkürler, özellikle ssh -v çok faydalı oldu


DSA anahtarlarından veya RSA anahtarlarından <2048 bitten kesinlikle kurtulmalısınız. OpenSSH'nin bu eski anahtarları kullanmasına izin vermenin yolları vardır, ancak IMO YALNIZCA eski bir protokolü etkinleştirmeniz gereken zaman, daha yeni bir şifreleme yöntemi kullanmak için güncellenemeyen donanıma bağlanmaktır (ve muhtemelen bu donanımın TBH'nin değiştirilmesi gerekir) . "Akıllı" ağa bağlı bir PDU'm var (güç dağıtım birimi) ve yalnızca bazı güvenli olmayan şifreleri destekliyor, bu nedenle ssh_config'imde o ana bilgisayar için belirli bir istisna var, ancak aynı zamanda konuşmayan ayrı bir VLAN'a da koyuyorum İnternete, çünkü bir güvenlik riski oluşturuyor.
dragon788
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.