Как легко установить SSH-соединение в Qt?

Я ищу простой способ установить ssh-соединение в Qt, аналогичный тому, как я могу работать на Java.

Например, чтобы войти в ssh-соединение через java, я могу:

import com.sshtools.j2ssh.SshClient;
import com.sshtools.j2ssh.transport.IgnoreHostKeyVerification;
import com.sshtools.j2ssh.authentication.PasswordAuthenticationClient;
import com.sshtools.j2ssh.authentication.AuthenticationProtocolState;

 ......

    SshClient ssh = new SshClient();
    try {
        // Timeout of ten seconds
        ssh.setSocketTimeout(10*1000);
        ssh.connect(ip, port, new IgnoreHostKeyVerification());

        PasswordAuthenticationClient auth = new PasswordAuthenticationClient();
        auth.setUsername(username);
        auth.setPassword(password);

        if (ssh.authenticate(auth) != AuthenticationProtocolState.COMPLETE) {
            errorLabel.setForeground(Color.RED);
            errorLabel.setText("Username or password is incorrect");
        }
        else
            successful = true;
    }
    catch (Exception e) {
        errorLabel.setForeground(Color.RED);
        errorLabel.setText("Cannot log into website");
        e.printStackTrace();
    }

Решения, которые я видел для Qt, следующие:

  1. Прокатить мой собственный, используя libssh
  2. Прокатить мой собственное использование libssh2
  3. Использование QProcess для вызова внешнего процесса SSH для установления соединения
  4. Купите библиотеку здесь: http://netsieben.com/products/ssh/

Поскольку версия Java бесплатна , Я немного не хочу тратить на это деньги, но если придется, то придется. Я бы предпочел не кататься самостоятельно, потому что я вижу только это в качестве причины ошибок (если только эти библиотеки не просты в использовании?).

Что-нибудь, чего я не нашел?

РЕДАКТИРОВАТЬ: У меня есть сейчас потратил дни на борьбу с libssh и libqxt. Насколько я могу судить, оба являются полными сбоями в работе с окнами. Libqxt не будет компилироваться в Windows с помощью ssh даже после выполнения шагов, описанных здесь и здесь . Класс-оболочка C ++ Libssh включает в себя все, что указано в заголовке, что приводит к сбоям при связывании, если их не контролировать. Как только эти проблемы с компоновщиком решены, скомпилированная библиотека Libssh выдает сбой CDB, поэтому отладка с помощью libssh становится невозможной, независимо от того, используется ли оболочка C ++ или нет. Так что теперь я m обратно в libssh2 или заплатив за это через какую-то сомнительную программу, которая, по-видимому, не обновлялась четыре года. Cryptlib , может быть? Не помогает то, что большая часть справки форума qt кажется «порождает другой процесс», поэтому у моих пользователей должен быть установлен ssh, что определенно не является нормой для курса в Windows.

11
задан mmr 22 April 2011 в 06:52
поделиться