aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/ssh/sshconnection.h
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@digia.com>2013-06-18 18:12:34 +0200
committerChristian Kandeler <christian.kandeler@digia.com>2013-06-20 15:21:41 +0200
commit9e5a9110cad738098009131510b3c50bc6e0de36 (patch)
tree47096d6034cff2c755659310903a1c6b6e1cf1e6 /src/libs/ssh/sshconnection.h
parent916ae49b6abd8ef3780eb3553deb24f397a1df36 (diff)
SSH: Implement and make use of RFC 4256.
There is now at least one Linux distribution (openSUSE 12.3) that disables the "password" authentication method in its default sshd_config, while others allow it, but disable "keyboard-interactive". This patch tackles the problem as follows: 1) Implement RFC 4256 ("keyboard-interactive") and make this method available in the API. 2) In addition, the API offers to try both password-based methods one after the other, until one has succeeded or all have failed. 3) Dialogs continue to offer just the choice between "Password" and "Key", as to not confuse users. Internally, "Password" uses the feature described in 2). Task-number: QTCREATORBUG-9568 Change-Id: Ic81bd5d2dc4b1332ea1a8be938c19811c21a9087 Reviewed-by: hjk <hjk121@nokiamail.com> Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Diffstat (limited to 'src/libs/ssh/sshconnection.h')
-rw-r--r--src/libs/ssh/sshconnection.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/libs/ssh/sshconnection.h b/src/libs/ssh/sshconnection.h
index 9a70a02a0b..621ace3823 100644
--- a/src/libs/ssh/sshconnection.h
+++ b/src/libs/ssh/sshconnection.h
@@ -60,7 +60,15 @@ Q_DECLARE_FLAGS(SshConnectionOptions, SshConnectionOption)
class QSSH_EXPORT SshConnectionParameters
{
public:
- enum AuthenticationType { AuthenticationByPassword, AuthenticationByKey };
+ enum AuthenticationType {
+ AuthenticationTypePassword,
+ AuthenticationTypePublicKey,
+ AuthenticationTypeKeyboardInteractive,
+
+ // Some servers disable "password", others disable "keyboard-interactive".
+ AuthenticationTypeTryAllPasswordBasedMethods
+ };
+
SshConnectionParameters();
QString host;