Neden ssh agent forwarding çalışmıyor?


57

Kendi bilgisayarımda, MacOSX çalıştıran, bu ~ / .ssh / config içinde var

Host *
ForwardAgent yes
Host b1
ForwardAgent yes

b1, Ubuntu 12.04 çalıştıran sanal bir makinedir. Bu şekilde ssh:

ssh pupeno@b1

ve ortak anahtarımı zaten kopyaladığım için şifre istenmeden giriş yaptım. Yönlendirme nedeniyle, b1'den pupeno @ b1'e ssh yapabilmeliyim ve benden bir parola istemeden çalışmalı, ancak çalışmıyor. Bana bir şifre soruyor.

Neyi kaçırıyorum?

Bu, ikinci ssh'nin ayrıntılı çıktısıdır:

pupeno@b1:~$ ssh -v pupeno@b1
OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to b1 [127.0.1.1] port 22.
debug1: Connection established.
debug1: identity file /home/pupeno/.ssh/id_rsa type -1
debug1: identity file /home/pupeno/.ssh/id_rsa-cert type -1
debug1: identity file /home/pupeno/.ssh/id_dsa type -1
debug1: identity file /home/pupeno/.ssh/id_dsa-cert type -1
debug1: identity file /home/pupeno/.ssh/id_ecdsa type -1
debug1: identity file /home/pupeno/.ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1
debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA 35:c0:7f:24:43:06:df:a0:bc:a7:34:4b:da:ff:66:eb
debug1: Host 'b1' is known and matches the ECDSA host key.
debug1: Found key in /home/pupeno/.ssh/known_hosts:1
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/pupeno/.ssh/id_rsa
debug1: Trying private key: /home/pupeno/.ssh/id_dsa
debug1: Trying private key: /home/pupeno/.ssh/id_ecdsa
debug1: Next authentication method: password
pupeno@b1's password:

Yanıtlar:


94

Anlaşılan anahtarım ajanda değildi ve bu düzeltti:

OS X :

ssh-add -K

Linux / Unix :

ssh-add -k

Yüklenen anahtarları aşağıdakileri kullanarak listeleyebilirsiniz:

ssh-add -l

ssh-add -L # for more detail

5
Not ssh-add -KOS X özgüdür
Roger Lipscombe

Bunu her yeniden başlatmada yapmak zorunda mısın?
Krauser

8
  1. ./ssh/id_rsa .ssh/id_dsa .ssh/id_ecdsaDosyalarınızın, kullanıcı tarafından sahiplenilmesi ve chmoded 600 olması gereken doğru izinlere sahip olup olmadığını kontrol edin .

  2. pupeno/.ssh/authorized_keysB1'de açık genel anahtarın açık olup olmadığını kontrol edin authorized_keysve anahtarın sonunda bir satır sonu olup olmadığını kontrol edin .

  3. Ssh-agent’ın çalışıp çalışmadığını kontrol edin, ssh-add

  4. GSSAPI tabanlı kimlik doğrulamayı ve iletmeyi deneyin ssh -K


Anahtarların izni iyi ve yetkili_ anahtarlardaki anahtar iyi durumda (aksi takdirde ilk etapta bağlantı kurmakta zorlanacağımı düşünüyorum).
pupeno

Çalışan ssh-agent'ı var mı? Bir ssh-add daha sonra ssh-A pupeno @ b1 ve sonra ssh pupeno @ b1 yaptığınız zaman ne olur?
Daniel Prata Almeida

Neden ssh-add -K'dan bahsedecek cevabını güncellemiyorsun ve ben de seninkini kabul ediyorum (çünkü bilgiler neredeyse aynı anda yayınlandı).
pupeno

6

/ Tmp'de boşluk kalmamasından dolayı sshd sunucusu aracı yönlendirme isteğini reddetme sorunum vardı. Bunun nedeni, sshd'nin / tmp içine soket yaratması gerektiğidir. Diskin temizlenmesi sorunumu çözdü.

ssh -v dedi ki:

debug1: Remote: Agent forwarding disabled: mkdtemp() failed: No space left on device

1
Aynı sorunu yaşadım, sadece izinler / tmp ile yanlıştı. TEŞEKKÜRLER!!
nevyn

6

Başka bir olası neden bağlantı paylaşımı: Biri diğer ana bilgisayarda acente yönlendirme ve bağlantı paylaşımı etkin olmadan oturum açmış olabilir. ssh -APaylaşılan bağlantı üzerinden (veya config dosyasında aynı şekilde belirtilen) ikinci giriş , -Abayrağını sessizce göz ardı eder . Yalnızca ikinci giriş için tamamen oturumu kapattıktan veya bağlantı paylaşımını devre dışı bıraktıktan sonra, aracı iletme işe yarayacaktır.


2

Bu soruya gelen diğer çalışanların da yararına:

Bir ~ / .ssh / config dosyasındaki yanlış boşluk da bazı kafa çizilmelerine neden olabilir.

Geçenlerde bu iş arkadaşlarımdan birine yardım ettim:

# incorrect
host foobar ForwardAgent yes

bunun yerine:

# correct
host foobar
  ForwardAgent yes

Ayrıca, ana bilgisayar listesindeki direktiflerin eksik girintisinin, olması gerekmese de, işlevsellikte bir fark yarattığı durumlar ile de karşı karşıya kaldım.


0

.Ssh / config dosyasına şu satırları ekleyin

  Host **Server_Address**
     ForwardAgent yes

SSH Aracısına anahtar ekle

 ssh-add -K

Uzak Sunucuya Bağlan

ssh -v **username**@**Server_Address**

Bağlantı testini GitHub'a karşı çalıştırın

ssh -T git@github.com

Hedeflenen depoya karşı uzak testi çalıştır

git ls-remote --heads git@github.com:**account**/**repo**.git
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.