libssh2 - Agent Forwarding not working
Я использую libssh2
library to ssh connections in my mobile application. Здесь я хочу использовать Agent Forwarding
служба поддержки.
I have followed same procedure as they have provided in example here LibSSH2 Agent Forwarding.
I am able to create agent successfully but when I try to connect it with libssh2_agent_connect(agent)
Это дает мне ошибку -39 LIBSSH2_ERROR_BAD_USE
,
Ну, я проверяю то же самое с помощью терминала MAC OSX, и он работает нормально. Пожалуйста, предложите, если что-то не так,
Вот как я пытаюсь однажды сделать успешное соединение
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;
}
Здесь что-то не так? пожалуйста, предложите.
1 ответ
Из кода на 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");
Очевидно, эта ошибка возникает из-за того, что переменная среды, указывающая на сокет агента, установлена неправильно. Пусть ваш код напечатает значение getenv("SSH_AUTH_SOCK")
в случае ошибки, чтобы подтвердить это.