libssh2 - Ajan İletme çalışmıyor


2

Ben kullanıyorum libssh2 mobil uygulamamda ssh bağlantılarını kütüphane. Burada kullanmak istiyorum Agent Forwarding destek.

Buradaki örnekte sağladıkları prosedürü izledim. LibSSH2 Acenta Yönlendirme .

Başarıyla aracı oluşturabilirim ancak bağlanmaya çalıştığımda libssh2_agent_connect(agent) Bana hata veriyor -39 LIBSSH2_ERROR_BAD_USE.

Ben de aynı şeyi kullanarak kontrol ediyorum MAC OSX terminali ve iyi çalışıyor. Lütfen yanlış bir şey varsa önerin,

Bir kere başarılı bağlantı kurmaya çalışıyorum budur

struct libssh2_agent_publickey *identity, *prev_identity = NULL;
int rc;
agent = libssh2_agent_init(session);

if (!agent)
{
    fprintf(stderr, "Failure initializing ssh-agent support\n");
    rc = 1;
}

int temp=libssh2_agent_connect(agent);
if (temp)
{
    fprintf(stderr, "Failure connecting to ssh-agent\n");
    rc = 1;
}

Burada yanlış bir şey var mı? lütfen önerin.


Herhangi bir hata veya ayrıntılı çıktı var mı? "Çalışmamak" oldukça geniş bir tanımdır.
Jakuje

ohh üzgünüm o kısmı özledim, söz konusu şimdi düzenlenmiş şimdi de burada bahsetti. libssh2_agent_connect (agent) ile bağlanmaya çalıştığımda bana -39 LIBSSH2_ERROR_BAD_USE hatası veriyor.
Niks

Sadece emin olmak için. Çalışan ajanınız var mı?
Jakuje

Evet, çalışıyor. Ajansa eklediğim ortak anahtarı kopyaladığım diğer makinemle ssh yapmaya çalıştığımda, parolayı sorma / girmeden ssh yapabiliyorum.
Niks

@Jakuje herhangi bir fikir?
Niks

Yanıtlar:


1

Adresindeki koddan https://github.com/libssh2/libssh2/blob/master/src/agent.c

path = getenv("SSH_AUTH_SOCK");
if (!path)
    return _libssh2_error(agent->session, LIBSSH2_ERROR_BAD_USE,
                          "no auth sock variable");

Açıkçası, bu hata oluyor çünkü aracı değişkenine doğru şekilde ayarlanmış çevre değişkenine sahip değilsiniz. Kodunuzun değerini yazdırmasını isteyin getenv("SSH_AUTH_SOCK") Bunu onaylamak için bir hata durumunda.


Geri bildiriminiz için teşekkürler, Evet yolu değişken NULL'dur. SSH müşterim Mac osx unix ile herhangi bir fark olabilir mi? Yaptığım şey ilk önce bilgisayarıma bağlanmak, daha sonra aynı kullanıcı ve oturumdaki aracıyla iletişime geçmeye başlıyorum. Ajan yaratabiliyorum ancak bağlanamıyorum. Ortam değişkeni yolu için NULL değeri elde ettiğimden, lütfen bana neyin yanlış olabileceğini önerebilir misiniz yoksa yanlış akışla gidiyorum? Teşekkürler
Niks

Yeniden açıklığa kavuşturmak için, anahtarlarınızı mac istemcinizde bulunduruyorsunuz, anahtarları Mac Terminalinizde çalışan ssh agent'a ekliyor ve ardından PC'ye aktarıyorsunuz. Ve sonra SSH_AUTH_SOCK PC'nizde boş olarak aynı kabukta mı buluyorsunuz? Bu durumda, ajan iletme muhtemelen iyi çalışmıyor. Bilgisayara geçerken bir "-A" parametresi eklemeye çalışıyorum. Hala çalışmıyorsa, PC'nizdeki ssh sunucusunda aracı iletimi büyük olasılıkla devre dışı bırakılmıştır. Yapılandırmayı değiştirin ve sshd'yi yeniden başlatın. Tekrar ssh yapmayı dene ve gör.
Sandip Bhattacharya

Uygulamamdan aynı makinede (Mac istemcisi) sshing yapıyorum. YES sonra SSH_AUTH_SOCK yolu NULL. Mac terminalimden denedim ve acente yönlendirme çalışıyor. Publick anahtarını Diğer (İkinci) Mac PC'ime kopyaladım ve Mac istemcimden (İlk) ssh yapmaya çalıştım ve bu anahtarın parolasını istemeden sorulmadan yapıldığı, aracı yönlendirmenin çalıştığı anlamına geliyor. Ancak uygulamadan bazıları akışım yanlış olabilir ya da tam olarak neden alamıyorum.
Niks
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.