누군가 libssh를 사용하여 ssh 공개 키 인증을 사용하여 서버와 함께 예제를 제공 할 수 있습니까? 이 https://github.com/substack/libssh/blob/master/examples/samplesshd-tty.c을 찾았지만 비밀번호가있는 인증입니다. 이런 예를 보았지만 libssh에 대한 공개 키 인증이있을 수 있습니다. 또는 누군가가 아래 코드를 변경하여이를 가져올 수 있습니다. libssh를 사용하는 ssh 공개 키 인증이있는 서버
나는이 (ssh_message_subtype (메시지)) case SSH_AUTH_METHOD_PUBLICKEY:
printf("User %s wants to auth with key %s\n",
ssh_message_auth_user(message),
ssh_message_auth_pubkey(message));
if(authenticate_pubkey(session, message)){
ssh_message_auth_reply_success(message,0);
ssh_message_free(message);
return 1;
}
ssh_message_auth_set_methods(message,
SSH_AUTH_METHOD_PUBLICKEY);
// not authenticated, send default message
ssh_message_reply_default(message);
break;
을 전환하고이 정말 어려운 일이 아니다이
static int authenticate_pubkey(ssh_session session, ssh_message message)
{
int rc;
std::string us = ssh_message_auth_user(message);
rc = ssh_userauth_publickey_auto(session, ssh_message_auth_user(message), NULL);
if (rc == SSH_AUTH_ERROR)
{
fprintf(stderr, "Authentication failed: %s\n",
ssh_get_error(session));
return SSH_AUTH_ERROR;
}
return rc;
}