Comment établir une simple connexion ssh avec le c++
Je suis en train de faire un programme en c++ sorcière va se connecter à un serveur ssh (mon portable). Le serveur est ok parce que je peux me connecter, via putty. Bien que le programme que j'ai écrit jusqu'à présent peut pas. Dans mon code j'utilise la bibliothèque libssh.h et pour le développement, j'ai utilisé visual studio 2015. L'erreur que j'obtiens est: crypt_set_algorithms2: pas d'algorithme de chiffrement fonction pour 3des-cbc
Je n'ai rien trouvé jusqu'à présent donc, je l'espère pour votre aide.
Le code que j'utilise:
#include <libssh/libssh.h>
#include <stdlib.h>
#include <stdio.h>
int main()
{
ssh_session my_ssh_session;
int rc;
int port = 22;
int verbosity = SSH_LOG_PROTOCOL;
char *password;
//Open session and set options
my_ssh_session = ssh_new();
if (my_ssh_session == NULL)
exit(-1);
ssh_options_set(my_ssh_session, SSH_OPTIONS_HOST, "192.168.1.6");
ssh_options_set(my_ssh_session, SSH_OPTIONS_USER, "john");
ssh_options_set(my_ssh_session, SSH_OPTIONS_LOG_VERBOSITY, &verbosity);
ssh_options_set(my_ssh_session, SSH_OPTIONS_CIPHERS_C_S,"aes128-ctr");
//ssh_options_set(my_ssh_session, SSH_OPTIONS_PORT, &port);
//Connect to server
rc = ssh_connect(my_ssh_session);
if (rc != SSH_OK)
{
fprintf(stderr, "Error: %s\n", ssh_get_error(my_ssh_session)); //HERE IS WHERE I GET THE ERROR
ssh_free(my_ssh_session);
exit(-1);
}
//Verify the server's identity
//For the source code of verify_knowhost(), check previous example
/* if (verify_knownhost(my_ssh_session) < 0)
{
ssh_disconnect(my_ssh_session);
ssh_free(my_ssh_session);
exit(-1);
}
*/
//Authenticate ourselves
password = "pass";
rc = ssh_userauth_password(my_ssh_session, NULL, password);
if (rc != SSH_AUTH_SUCCESS)
{
fprintf(stderr, "Error authenticating with password: %s\n",
ssh_get_error(my_ssh_session));
ssh_disconnect(my_ssh_session);
ssh_free(my_ssh_session);
exit(-1);
}
ssh_disconnect(my_ssh_session);
ssh_free(my_ssh_session);
}
OriginalL'auteur mac johnsto | 2015-11-18
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser différents de chiffrement.
3des-cbc
est cassé et probablement désactivé sur votre serveur déjà.Il est vraiment tutoriel de nice avec une simple session.
Retrait de la ligne de travail pour moi sur Ubuntu (je ne sais pas où vous avez trouvé l'):
Si non, quelle est la version de
libssh
utilisez-vous? N'est-il pas certains obsolète?J'ai trouvé que j'ai utilisé certains Ubuntu-ancienne
libssh-6.3
, donc ce ne sera probablement pas un problème. La question est donc qu'est-ce que le serveur de l'autre côté. Êtes-vous en mesure de se connecter avec quelques récents openssh?OriginalL'auteur Jakuje
Enfin je l'ai! J'ai supprimé la ligne
Ensuite, j'ai utilisé le ssh.dll de libssh v0-7.2 au lieu de la ssh.dll de v0-7.1 j'ai utilisé avant. L'ssh.dll est situé dans libssh-0.7.2\bin. Si vous faites une erreur, comme le msvcr120d.dll est manquant essayer de changer de débogage pour publication dans visual studio.
OriginalL'auteur mac johnsto