ssh-add şikayet: Kimlik doğrulama aracınızla bağlantı açılamadı

Raspbian çalıştıran bir RaspberryPi üzerinde çalışan ssh-add 'ı almaya çalışıyorum.

Terminale aşağıdaki çıktıyı verdiğimde ssh-agent uygulamasını başlatabilirim:

SSH_AUTH_SOCK=/tmp/ssh-06TcpPflMg58/agent.2806; export SSH_AUTH_SOCK;
SSH_AGENT_PID=2807; export SSH_AGENT_PID;
echo Agent pid 2807;

çalıştırırsam ps aux | grep ssh Çalıştığını görebilirim.

Sonra anahtar şifremi eklemek için ssh-add komutunu çalıştırmaya çalışıyorum ve aşağıdakileri alıyorum:

Could not open a connection to your authentication agent.

Herhangi bir fikir?

141
eval $ (ssh-agent) 'ı deneyin
katma yazar Konstantinos Gaitanas, kaynak

8 cevap

Kabuğunuzun, kabuk kodu çıktısını ssh-agent ile değerlendirmesi amaçlanmıştır. Bunun yerine şunu çalıştırın:

eval "$(ssh-agent)"

Veya ssh-agent'ı zaten başlattıysanız, kopyalayın (Bourne benzeri bir kabuk çalıştırdığınızı varsayarak) kabuk isteminize yapıştırın.

ssh commands need to know how to talk to the ssh-agent, they know that from the SSH_AUTH_SOCK environment variable.

194
katma
@KamijouTouma, düzenlemeyi geri aldım. Lütfen bu bilgileri, bu düzenlemede tüm söylediklerinizi kabul etmediğim için kendi cevabınıza ekleyin.
katma yazar Stéphane Chazelas, kaynak
@DenysS. Hayır, kurulumunu yapar ve kabuklarına, iletişim kurabilmesi için ortamını nasıl güncelleyeceğini söyler. Bunu kendi başına yapamaz. Güncellenen ortamla yeni bir kabuk başlatabilir ( ssh-agent bash böyle yapar), ancak yabancı bir komut çalıştıran ayrı bir işlemin belleğini (zaten çalışan kabuğunuz) güncelleyemez.
katma yazar Stéphane Chazelas, kaynak
Veya ssh-agent bash girebilirsiniz ve ssh-add çalışacaktır sonra
katma yazar Niamul, kaynak
@DenysS. İstediğiniz zaman, istediğiniz sayıda ~/.bashrc 'a eval $ (ssh-agent) ' ı ekleyebilirsiniz.
katma yazar dxrsm, kaynak
Teşekkürler, nasıl çalıştığını anlamadım. Bu çok takdir edilmektedir.
katma yazar maddy, kaynak
@StephaneChazelas, eğer ssh-aracım önyüklemede başlatılıyor ancak yine de kabuğumda değerlendirmem gerekiyorsa, bunun her kabuk için otomatik olarak değerlendirilmediği ve bir şekilde kök kullanıcı tarafından yapılandırılması gerektiği anlamına mı geliyor?
katma yazar bbb, kaynak
@Stephane, ssh-agent komutunun sadece yürütmenin çıktısını yazdırdığını doğru anlıyorum, eval sürümü gerçekten komutu çalıştırırken?
katma yazar bbb, kaynak

Bunu dene:

$ ssh-agent /bin/sh
$ ssh-add $yourkey
23
katma
Bu aslında benim için diğer cevapların hiçbirinin çalışmadığı bir yerde çalıştı.
katma yazar Gentoo, kaynak
Benim için de çalıştı. Daha önce ZSH'deydim ...
katma yazar Luca Matteis, kaynak
Balık kabuğunu kullanıyorsanız, bu cevap işe yarar. ssh-agent/usr/bin/fish .
katma yazar JBar, kaynak
Büyük @cjm, Slackware Linux kullanıyorum ve bu benim için çalışan yol.
katma yazar JBar, kaynak
Bir hata alıyorum: " Kimlik doğrulama aracınızla bağlantı açılamadı. "
katma yazar Brandon Ibbotson, kaynak
Bu eski bir Fedora yayın 10 (Cambridge) kutusunda çalıştı. Teşekkürler.
katma yazar iHavADoubt, kaynak
@slackmart BSD'ye balık yüklediyseniz, konumu /usr/local/bin/fish 'dır (alternatif olarak /usr/ports/shells/fish ). Bunu çözmeme yardım ettiği için whereis komutunu teşekkür ederim.
katma yazar cjm, kaynak

Bu soru ayrıca, Stackoverflow 'da da oldukça iyi ele alınmıştır.

eval `ssh-agent -s`

ssh-add
10
katma
`...` etrafındaki tırnak işaretlerini unuttunuz. Bunlar olmadan split + glob operatörü çıkışa çağrılır.
katma yazar Stéphane Chazelas, kaynak

Eğer csh'i kabuk olarak kullanıyorsanız ( FreeBSD PI ) bu işe yarayabilir:

eval `ssh-agent -c`

sonra sadece şöyle bir şey yapmanız gerekir:

ssh-add ~/.ssh/id_rsa
5
katma
Bir hata alıyorum: " Kimlik doğrulama aracınızla bağlantı açılamadı. "
katma yazar Brandon Ibbotson, kaynak

Aşağıdaki sözdizimini de kullanabilirsiniz:

ssh-agent sh -c 'ssh-add && echo Do some stuff here.'
1
katma
Çünkü önce onu eklemelisiniz, örneğin: ssh-agent sh -c "ssh-add && ssh-add -l" kimliğinizi basacaktır.
katma yazar kenorb, kaynak
Bu benim için çalışmıyor, eğer ssh-agent sh -c "ssh-add -l" 'e giderseniz kimliğiniz olmadığını söyler.
katma yazar uKolka, kaynak

Bunu dene: C: \ $ Installation_Folder $ \ Git \ cmd gidin ve yürütmek:

start-ssh-agent 

Bir cmd komutu açacak ve ssh-agent 'ı doğru şekilde çalıştıracaktır.

ssh-add ~/.ssh/id_rsa should then work.

1
katma
" bash: start-ssh-agent: komut bulunamadı "
katma yazar Brandon Ibbotson, kaynak

Sudo ile bir kimlik kullanmak isterseniz, birkaç yol var. Örneğin. sudo npm kurulum .

Long way, but also gives you root access so you won’t need to use sudo a lot.

  1. Run
    sudo ssh-agent bash
    This will ask for your password and after will run ssh-agent with the superuser’s privileges,
  2. Navigate to your users’ .ssh folder
    cd /home/user/.ssh
  3. From there you can run

    ssh-add id_rsa
    npm install git+ssh://[email protected] -g && npm link PROJECT-NAME
    

Short way, only your user (unless you want to sudo a lot)

eval "$(ssh-agent)"
ssh-add
sudo SSH_AUTH_SOCK="$SSH_AUTH_SOCK" npm install git+ssh://[email protected] -g && sudo npm link PROJECT-NAME
1
katma
export ve eval , kök sağladığınız root'un giriş kabuğu Bourne benzeri olduğu gibi çalışır. Kökün kabuğu csh veya tcsh ise, eval `ssh-agent -c` 'ı kullanın.
katma yazar Stéphane Chazelas, kaynak
Ayrıca sudo SSH_AUTH_SOCK = "$ SSH_AUTH_SOCK" npm kurulumunu ... yaparak ssh-ajanınıza root erişimi verebileceğinizi unutmayın.
katma yazar Stéphane Chazelas, kaynak
Ne denedin Kök olarak çalışan bir bash kabuğunun isteminde eval "$ (ssh-agent)" çalışıyor. Açıkça o kabuktan veya soyundan gelen ssh komutunu çalıştırmanız gerekecek, böylece SSH_AUTH_SOCK env var. eval "$ (sudo ssh-agent)"; sudo ssh ... çalışmaz çünkü varsayılan olarak sudo SSH_AUTH_SOCK env var.
katma yazar Stéphane Chazelas, kaynak
Hala bir hata alıyorum: key_load_private_type: İzin reddedildi
katma yazar Brandon Ibbotson, kaynak
Hem denenmiş hem de bash yine kabuk bourne ve düzgün çalışmadı. root dahil debian jessie örneğindeki tüm kullanıcılar varsayılan olarak bash kullanacak şekilde ayarlanmış.
katma yazar St0fF, kaynak
eval "$ (ssh-agent)" 'ı denedim, daha sonra bir tür yapılandırma hatası olup olmadığını görmek için bakıyorum. Her ne kadar bu kılavuzda verdiğim mevcut yol, sizin kökünüzden beri hangi kullanıcının olmak istediğini ve sunucuda bulunan herhangi bir kullanıcının id_rsa'sına erişebilmesini istediğiniz için ücretsiz kontrol sağlar. Bu yüzden bir kere onu düzgün bir şekilde çalışmasını sağladıktan sonra cevabımı düzenleyin.
katma yazar St0fF, kaynak
@ StéphaneChazelas bu kabul edilebilir mi?
katma yazar St0fF, kaynak

Bu kafa karıştırıcıydı ve kullanıcının Linux veya Windows'ta (benim gibi) bir ssh anahtarı eklemeye çalışıp çalışmayacağına bağlı olarak 2 olası iyi yanıtı var. Bu muhtemelen OP'ye cevap vermiyor, ancak git-bash için bir genişleme. Geliştirme için hem Windows hem de Ubuntu çalıştırıyorum ve git kurulumum her birinde biraz farklı.

Bunu dene: C: \ $ Installation_Folder $ \ Git \ cmd'ye git ve çalıştır:

     

start-ssh-agent Bir cmd komutu açar ve ssh-agent’ı çalıştırır.   doğru yol.

.. iyi bir Windows cevabıydı, ancak Git kurulum klasörünü bulmak için Windows Gezgini'nden geçeceğinizi ve Windows kabuğunu çalıştıracağınızı belirlemedi. Adım 1'in sonunda açılacaktı.
"C: \ $ Installation_Folder $ \ Git \ cmd’ye gidin"

2. Adım: sadece çift tıklamanız gerekir

start-ssh-agent

3. adımda, git-bash veya çalıştırdığınız ve * nix terminal emülatörüne dönüp ssh-add komutunu çalıştırın. Eğer ssh public key için varsayılan adı kullandıysanız, adı otomatik olarak ssh-add kullandığı için eklemek zorunda değilsiniz.

1
katma