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