| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Signed-off-by: Michele Calgaro <[email protected]>
(cherry picked from commit 026828840f8255b5c4fde83ea95209f6f1f5ef8f)
|
|
|
|
|
| |
Signed-off-by: Alexander Golubev <[email protected]>
(cherry picked from commit 0e615e5c9090c5a0477865db0e687849a04aa5a2)
|
|
|
|
|
| |
Signed-off-by: Alexander Golubev <[email protected]>
(cherry picked from commit 3a4538b4c3da7432407ccab20a9336663f3a1ed8)
|
|
|
|
|
|
|
|
| |
The libssh defines those flags as unsigned. Technically ssh_auth_list()
still returns int, but its guranteed to be bitset of those flags.
Signed-off-by: Alexander Golubev <[email protected]>
(cherry picked from commit 5b9585e42977f46639dc3784352e9c4be4cd9cac)
|
|
|
|
|
|
|
|
|
|
|
| |
Also:
- do not translate auth methods names as the names appear in config
files verbatim
- libssh actually doesn't supports hostbased auth, so exclude it from
bitset of supported
Signed-off-by: Alexander Golubev <[email protected]>
(cherry picked from commit 1597d5f3848cdb39b7d458f0c6c33ecdfc3125d5)
|
|
|
|
|
|
|
|
| |
Consider publickey auth canceled only if user canceled it for each of
the prompted keys.
Signed-off-by: Alexander Golubev <[email protected]>
(cherry picked from commit 4b4b72db8f880027a85cb95a1510cefd5522d245)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In case the server is set up for multi-factor authentication we could
be have to query several things from the user like password, a key
passphrase, their mother's maiden name etc. It doesn't make a big
difference during an initial connection, but it butchers the
reconnection process: it can retrieve the answer of the user to the
first question (e.g. their password), but it fails to retrieve the
second one (e.g. the key passphrase). So the user would be forced to
reenter the answer for the second question upon each reconnection.
The reason for this is the passwdserver's desig (see DESIGN [1]):
Each query for AuthInfo with the openPassDlg() has an secNr number
associated with it. If it's smaller than the one of the one stored for
the privious request, than the one from the cache will be returned
automagically, if it's bigger the dialog will be prompted to the user.
Each call to openPassDlg() advances s_seqNr to the last value reported
by the passwdserver. So the first call will return the cached value and
subsequent calls will actually display the dialog to the user (assuming
authentication with the cached data failed).
But in case of multi-factor auth we have to query user for several
independent values. And we want to try to retrieve each one of those
from the cache. So we have to get a bit hacky and manually manipulate
the SlaveBase::s_seqNr value.
[1]: https://mirror.git.trinitydesktop.org/gitea/TDE/tdelibs/src/branch/master/tdeio/kpasswdserver/DESIGN
Signed-off-by: Alexander Golubev <[email protected]>
(cherry picked from commit 95b18e63382c4f0013c4eb2473d04f6020a84b7a)
|
|
|
|
|
| |
Signed-off-by: Alexander Golubev <[email protected]>
(cherry picked from commit 4d88b3edddc46ab56e773c4c73cd29b3292b3181)
|
|
|
|
|
| |
Signed-off-by: Alexander Golubev <[email protected]>
(cherry picked from commit ee73349644fdf2a3a2ac122d7f930f84b00bcdba)
|
|
|
|
|
| |
Signed-off-by: Alexander Golubev <[email protected]>
(cherry picked from commit f8f0b8815ca821ad6764149a915122f8b2f0bf8b)
|
|
|
|
|
|
|
|
| |
This could be useful in case the destructor will be called before
openConnection()
Signed-off-by: Alexander Golubev <[email protected]>
(cherry picked from commit 21ce69f338efb0636e9eef0e7405825b5dd7c0b0)
|
|
|
|
|
| |
Signed-off-by: Alexander Golubev <[email protected]>
(cherry picked from commit 009382772da4cb5a56749ea67ed29c09658a4f69)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We should always pass to the openPassDlg() exactly the same username
otherwise it may result in incorrect caching of passwords especially in
case if the username is changed by the user.
Also don't allow username change in case it was passed to setHost()
(i.e. it was specified in the URL like e.g. sftp://username@host/).
In such a case after changing it'd be impossible to properly cache it.
Signed-off-by: Alexander Golubev <[email protected]>
(cherry picked from commit 581d266ae6f085317b4247b2d1ddbc12c8fa09fb)
|
|
|
|
|
|
|
|
|
|
| |
- Move authentication methods into separate functions so it would be
easier to correctly handle error after those and select which should
be called in which order.
- A lot of minor improvements along the way
Signed-off-by: Alexander Golubev <[email protected]>
(cherry picked from commit 2756ae762fefc3fe86463174866674a987856d89)
|
|
|
|
|
|
|
|
|
|
|
| |
This will help kpasswdserver not to confuse different user's answers to
different questions.
Also avoid passing/returning TDE::AuthInfo for kb-interactive auth as it
isn't really necessary when we don't manually caching passwords anymore.
Signed-off-by: Alexander Golubev <[email protected]>
(cherry picked from commit d316ff14bdcc6c7e402276cba2a15c1ac8bb5278)
|
|
|
|
|
|
|
|
| |
All password caching we need actually already autmagically
done by openPassDlg().
Signed-off-by: Alexander Golubev <[email protected]>
(cherry picked from commit a19610bb735faf89fcd27c6885bf81e53c9b2d7a)
|
|
|
|
|
|
|
|
|
| |
There were a couple of missing closeConnection() calls after connection
errors. The probably haven't caused any major bugs, but use scope guards
to be on the safe side.
Signed-off-by: Alexander Golubev <[email protected]>
(cherry picked from commit 9c0a0ce976549c1849eecb497be2d8bdf49d7aa5)
|
|
|
|
|
| |
Signed-off-by: Alexander Golubev <[email protected]>
(cherry picked from commit 75349be43e1b4ced52502f98316148a7b55c1352)
|
|
|
|
|
|
|
| |
As it allocated via malloc() rather than new.
Signed-off-by: Alexander Golubev <[email protected]>
(cherry picked from commit 688544193fb40241435b07f83135d91ad708c6df)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Several enhancements to public key authentication and some other stuff:
- Fix passphrase entry for encrypted keys (was either hanging up or
segfaulting)
- Use scope guard idiom for cleanup calls for more reliable cleanup in
case of errors
- Add normal prompt for public key's passphrase entry dialog
- Correctly differentiate passphrase to password when cached (yes they
are getting cached regardless of keepPassword, at least for some
duration of time)
- Centrilize AuthInfo initialization and some rejig of it
kbd-interactive authentification
Signed-off-by: Alexander Golubev <[email protected]>
(cherry picked from commit b91e2203891ce7ef627a241ea05c3f11180fcfc1)
|
|
|
|
|
|
|
|
|
| |
This is a partial fix to the sftp ioslave. Subsequent commits will fix
other issues.
Closes: https://mirror.git.trinitydesktop.org/gitea/TDE/tdebase/issues/443
Signed-off-by: Alexander Golubev <[email protected]>
(cherry picked from commit a1fa8a79bbd7f6385d312cce709768944506d960)
|
|
|
|
|
| |
Signed-off-by: Michele Calgaro <[email protected]>
(cherry picked from commit 2d7d2122cf33aa713cebef95981305039c798003)
|
|
|
|
|
| |
Signed-off-by: Mavridis Philippe <[email protected]>
Signed-off-by: Slávek Banko <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
| |
For details see PR #279.
Portions of code borrowed from KDE5 SFTP ioslave:
Source: https://invent.kde.org/network/kio-extras/-/blob/master/sftp/kio_sftp.cpp
Licence: LGPLv2 or later
Signed-off-by: Mavridis Philippe <[email protected]>
|
|
|
|
|
|
|
|
|
| |
Source: https://github.com/sandsmark/kde2-kio-sftp-kde4
Licence: GPLv2 or later
This resolves issue #276.
Signed-off-by: Mavridis Philippe <[email protected]>
|
| |
|
| |
|
| |
|
|
|