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


151

Ben almak için çalışıyorum ssh-addRaspbian çalıştıran bir Raspberry Pi üzerinde çalışıyor.

Bunu yaptığım ssh-agentzaman terminale aşağıdaki çıktıyı verebilirim :

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

Eğer koşarsam çalıştığını ps aux | grep sshgörebilirim.

Sonra ssh-addanahtar parolamı eklemek için koşmaya çalışıyorum ve aşağıdakileri alıyorum:

Could not open a connection to your authentication agent.

Herhangi bir fikir?


6
Deneyineval $(ssh-agent)
Ulrich DANGEL

Yanıtlar:


224

Kabuğunuz, bu kabuk kodu çıktısını değerlendirmek içindir ssh-agent. 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.

sshkomutların nasıl konuşulacağını bilmeleri gerekir, bunu çevre değişkeninden ssh-agentbiliyorlar SSH_AUTH_SOCK.


Teşekkürler, nasıl çalıştığını anlamadım. Bu çok takdir edilmektedir.
Daniel Groves

2
Veya ssh-agent
bash'a

@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?
Denys S.,

5
@DenysS. Hayır, kurulumunu yapıyor ve kabuklarına, iletişim kurabilmesi için ortamını nasıl güncelleyeceğini anlatıyor. Bunu kendi başına yapamaz. Güncellenen ortamla yeni bir kabuk başlatabilir (ne ssh-agent bashyaparsa), ancak yabancı bir komut çalıştıran ayrı bir işlemin belleğini (zaten çalışan kabuğunuz) güncelleyemez.
Stéphane Chazelas

@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?
Denys S.,

27

Bunu dene:

$ ssh-agent /bin/sh
$ ssh-add $yourkey

5
Bu aslında benim için diğer cevapların hiçbiri çalışmadı çalıştı.
Joseph Snow

2
Balık kabuğunu kullanıyorsanız, bu cevap işe yarar. ssh-agent /usr/bin/fish.
slackmart

1
Hata alıyorum: " Kimlik doğrulama aracınızla bağlantı açılamadı. "
IgorGanapolsky

@slackmart BSD'ye balık taktıysanız, konumu /usr/local/bin/fish(alternatif olarak /usr/ports/shells/fish). whereisBunu çözmeme yardım ettiğin için komuta teşekkür ederim .
cjm

Harika @cjm, Slackware Linux kullanıyorum ve bu benim için çalışan yol.
slackmart


6

Bir kabuk olarak csh 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

Hata alıyorum: " Kimlik doğrulama aracınızla bağlantı
kurulamadı

2

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

ssh-agent sh -c 'ssh-add && echo Do some stuff here.'

Bu benim için çalışmıyor, gidersen ssh-agent sh -c "ssh-add -l"kimliğin olmadığını söyler.
Ain Tohvri

Çünkü önce onu eklemelisin, örneğin: ssh-agent sh -c "ssh-add && ssh-add -l"kimliğini basacak.
kenorb

1

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

start-ssh-agent 

Bir cmd komutu açacak ssh-agentve doğru yolu çalıştıracaktır .

ssh-add ~/.ssh/id_rsa sonra çalışmalı.


" bash: start-ssh-agent: komut bulunamadı "
IgorGanapolsky 18

1

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'ı doğru şekilde çalıştırır.

.. 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ı adım 1
' in sonunda açacağınızı belirleyemedi. ", C: \ $ Installation_Folder $ \ Git \ cmd"

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

start-ssh-agent

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


1

Örneğin, sudo ile bir kimlik kullanmak istiyorsanız, birkaç yol var sudo npm install.

Uzun yol , aynı zamanda size kök erişimi sağlar, böylece fazla kullanmanıza gerek kalmaz sudo.

  1. Çalıştır
    sudo ssh-agent bash
    Bu, şifrenizi soracak ve daha sonra ssh-agent, süper kullanıcının ayrıcalıklarıyla çalıştırılacak ,
  2. Kullanıcılarınızın .ssh klasörüne gidin
    cd /home/user/.ssh
  3. Oradan kaçabilirsin

    ssh-add id_rsa
    npm install git+ssh://git@YOUR-PROJECT-URL -g && npm link PROJECT-NAME
    

Kısa yoldan , sadece kullanıcınız (çok fazla konuşmak istemediğiniz sürece)

eval "$(ssh-agent)"
ssh-add
sudo SSH_AUTH_SOCK="$SSH_AUTH_SOCK" npm install git+ssh://git@PROJECT-URL -g && sudo npm link PROJECT-NAME

exportve evalsadece root gibi çalıştırılan rootların giriş kabukları Bourne gibi çalışır. Kökün kabuğu csh veya tcsh ise, kullanıneval `ssh-agent -c`
Stéphane Chazelas

Ayrıca root, ssh-acentanıza erişiminizi de sağlayabileceğinizi unutmayınsudo SSH_AUTH_SOCK="$SSH_AUTH_SOCK" npm install...
Stéphane Chazelas

Hem denenmiş hem de bash tekrar 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ış.
Belldandu,

Ne denedin eval "$(ssh-agent)"root olarak çalışan bir bash kabuğunun isteminde çalışacaktır. Açıkça ssho kabuktan veya soyundan gelmeniz gerekecek, böylece SSH_AUTH_SOCK env var. eval "$(sudo ssh-agent)"; sudo ssh...çalışmaz çünkü sudovarsayılan olarak SSH_AUTH_SOCK env var.
Stéphane Chazelas,

eval "$(ssh-agent)"Bir çeşit yapılandırma hatası olup olmadığını görmek için hasta aramaya çalıştım . 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 çalışmaya başladığımda cevabımı düzenleyin.
Belldandu
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.