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.