libssh 라이브러리를 사용 중이고 새 SFTP 세션을 만들려고합니다. 내가SFTP libssh 실패
ssh_packet_unimplemented: Received SSH_MSG_UNIMPLEMENTED (sequence number 3)
의 오류 메시지가 계속 나는 원격 서버의 시스템 로그를 확인하고 난합니다 (에서 가져온 다음을 사용하려고이 오류가 몇 가지 이유로 오류
dispatch_protocol_error: type 90 seq 3 [preauth]
발견 libssh doc)
int sftp_helloworld(ssh_session session) {
sftp_session sftp;
int rc;
sftp = sftp_new(session); // Freezes at this part
if (sftp == NULL) {
fprintf(stderr, "Error allocating SFTP session: %s\n", ssh_get_error(session));
return SSH_ERROR;
}
rc = sftp_init(sftp);
if (rc != SSH_OK) {
fprintf(stderr, "Error initializing SFTP session: %s.\n", sftp_get_error(sftp));
sftp_free(sftp);
return rc;
}
sftp_free(sftp);
return SSH_OK;
}
노력하고있는 유일한 방법은 실제 SSH 연결합니다. SCP, SFTP 또는 원격 셸을 열 때도 같은 오류가 발생합니다.
나는 내 문제에 관해 많은 연구를했지만 어떤 구제책도 찾을 수 없었다. 어떤 도움이라도 좋을 것입니다.
편집 :
내가/var/log/auth.log
을 통해 보면서이 발견 된 아마존 EC2 서버에서
: 나는이 SSH_OPTIONS_LOG_VERBOSITY
SSH_LOG_PACKET
에 모든 것이 원활하게 실행 설정 libssh 코드에서
sshd[24860]: Accepted publickey for ubuntu
sshd[24860]: pam_unix(sshd:session): session opened for user ubuntu by (uid=0)
sshd[24930]: dispatch_protocol_error: type 90 seq 3 [preauth]
을하지만, 그것을 sftp_new()
에 도착하여 SSH_MSG_UNIMPLEMENTED
메시지에 동결,이 오류가 발생합니다.
channel_open: Creating a channel 43 with 64000 window and 32768 max packet
packet_send2: packet: wrote [len=44,padding=19,comp=24,payload=24]
channel_open: Sent a SSH_MSG_CHANNEL_OPEN type session for channel 43
ssh_socket_unbuffered_write: Enabling POLLOUT for socket
ssh_packet_socket_callback: packet: read type 3 [len=12,padding=6,comp=5,payload=5]
ssh_packet_process: Dispatching handler for packet type 3
ssh_packet_unimplemented: Received SSH_MSG_UNIMPLEMENTED (sequence number 3)
는 EDIT2 :
나는
ssh_key pKey;
int rc = ssh_pki_import_privkey_file(PC_PRIVATE_KEY_FILE, NULL, NULL, NULL, &pKey);
ssh_session my_ssh_session = ssh_new();
ssh_options_set(my_ssh_session, SSH_OPTIONS_HOST, PC_HOST);
ssh_options_set(my_ssh_session, SSH_OPTIONS_USER, PC_USER);
ssh_options_set(my_ssh_session, SSH_OPTIONS_PORT, &PC_PORT);
ssh_options_set(my_ssh_session, SSH_OPTIONS_LOG_VERBOSITY, &PC_VERBOSITY);
rc = ssh_connect(my_ssh_session);
나는 tutorial 혼란 된 서버에 연결하려면 다음 코드를 사용했다. 서버에 제대로 연결하는 코드를 작성하지 않았을 수 있습니다.
이 전혀 정기적 SFTP 클라이언트를 사용하여 서버에 연결할 수 있습니까? –
@MartinPrikryl 네,'ssh','sftp' 및'scp'를 사용하여 서버에 연결할 수 있습니다. – Amous
가능한 모든 로그를 수집하고 질문에 편집하십시오. 서버 측 로그 (SSH 서버는 어쨌든 무엇입니까?), sftp -vv 출력, libssh 로그. –