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.