Libssh2 – Le transfert d'agent ne fonctionne pas

libssh2 bibliothèque libssh2 pour les connexions ssh dans mon application mobile. Ici, je souhaite utiliser le support de Agent Forwarding .

J'ai suivi la même procédure que dans l'exemple ici LibSSH2 Agent Forwarding .

Je peux créer un agent avec succès mais lorsque j'essaie de le connecter à libssh2_agent_connect(agent) il me donne une erreur -39 LIBSSH2_ERROR_BAD_USE .

Eh bien, je vérifie la même chose en utilisant le terminal MAC OSX et ça fonctionne bien. Veuillez suggérer si quelque chose ne va pas,

C'est comme ça que j'essaie une fois que je fais une connexion réussie

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

Y a-t-il quelque chose qui ne va pas ici? veuillez suggérer.

À partir du code à 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"); 

Donc, évidemment, cette erreur se produit car vous ne possédez pas la variable d'environnement indiquant correctement le jeu d'agent. Demandez à votre code d'imprimer la valeur de getenv("SSH_AUTH_SOCK") en cas d'erreur pour confirmer ceci.