libssh2 – L'agente di inoltro non funziona

Sto utilizzando la libreria di libssh2 alle connessioni ssh nella mia applicazione mobile. Qui voglio utilizzare il supporto per l' Agent Forwarding .

Ho seguito la stessa procedura fornita nell'esempio qui LibSSH2 Agent Forwarding .

Sono in grado di creare agente con successo ma quando cerco di collegarlo con libssh2_agent_connect(agent) mi dà errore -39 LIBSSH2_ERROR_BAD_USE .

Beh sto controllando la stessa cosa usando il terminal MAC OSX e sta funzionando bene. Si prega di suggerire se qualcosa di sbagliato,

Questo è il modo in cui sto cercando un collegamento di successo una volta

 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; } 

C'è qualcosa che non va qui? vi preghiamo di suggerire.

Dal codice a 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"); 

Quindi ovviamente, questo errore sta accadendo perché non hai la variabile di ambiente che punta alla presa dell'agente impostata correttamente. Il codice printingre il valore di getenv("SSH_AUTH_SOCK") in caso di errore per confermarlo.