2017-09-14 3 views
1

J'essaie d'établir une connexion à l'aide de libssh (https://www.libssh.org/) sur une machine sur laquelle le système d'exploitation SUSE Enterprise est installé.Connexion à SUSE à l'aide de libssh

ssh_options_set(tempSshSession, SSH_OPTIONS_HOST, host2Connect); 
    ssh_options_set(tempSshSession, SSH_OPTIONS_LOG_VERBOSITY, &verbosity); 
    ssh_options_set(tempSshSession, SSH_OPTIONS_PORT, &port); 

    int rc = ssh_connect(tempSshSession); 
    if(rc != SSH_OK) { 
     printf("Error connecting to the localhost\n"); 
     exit(-1); 
    } 
    // Authorized by the password. 
    rc = ssh_userauth_password(tempSshSession, username, password); 

Après ssh_userauth_password() appeler renvoie la réponse: "SSH_AUTH_DENIED: Echec de l'authentification: utiliser une autre méthode"

Il fonctionne très bien pour les systèmes d'exploitation tels que: Ubuntu, Linux générique et CentOS.

Merci

+0

Il est très tentant de repousser cette question. https://stackoverflow.com/help/how-to-ask. Je ne fais que voter contre l'intention malveillante et le désinvolte grossier. Je vous donne le bénéfice du doute. Mais tenez ferme les autres ne seront pas aussi gentils. –

+0

Est-ce que le nom d'utilisateur 'root'? –

+1

Avec cela fonctionnant sur d'autres systèmes, il semblerait que ce soit une erreur de configuration sshd (ou une différence au moins). Pouvez-vous vérifier la configuration? Pouvez-vous établir une connexion sans le programme? – xyious

Répondre

0

Vérifiez /etc/ssh/sshd_config. Vous devriez trouver PermitRootLogin forced-command-only quelque part là. Réglez cela sur yes et votre problème devrait disparaître. S'il vous plaît gardez à l'esprit qu'il y a une raison, pourquoi les gens ont décidé de ne pas autoriser par utilisateur root/passer les connexions par défaut.

+1

sur tous les autres serveurs que je l'ai testé, j'ai également utilisé la racine comme l'utilisateur –

+0

ces paramètres de configuration dévient de la distribution à la distribution et l'administrateur à l'administrateur –