-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added initial SFTP implementation using SSH.NET #15477
base: main
Are you sure you want to change the base?
Conversation
This is around Storage Abstraction and it'll take a huge amount of time to get this abstraction ready for actual use. |
Sounds good |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM otherwise!
You seem to have implemented for BaseStorageItem.
Is that working well?
If so, how did you validate/use SFTP storage?
I've seen what's implemented for FTP support and tried to go for a similar implementation since it's pretty much the only non-shell-based storage implementation here with different protocols (AFAIK) |
2e4f94d
to
98eb6b4
Compare
@itsWindows11 what the status of this PR? |
Storage abstraction won't be implemented until the next year unless someone take over in Files and given OwlCore's progress. I think we should wrap up in order to merge. |
Hi all, I wonder if you may be open to use Tmds.Ssh to implement this feature? The I'd be interested in any feedback you have while using the library. |
Sounds like a better option, but my SSH.NET issue regarding async IO support seems to be addressed so I don't think there's a need to switch. The main blocker is the storage abstraction though, we either need to get this merged with switching the methods to be async and someone completes the integration, or wait until we can use OwlCore.Storage w/ extensions on the Files end. |
@itsWindows11 the reason to consider switching could be performance. From the limited comparisons I did, Tmds.Ssh was considerably faster. |
I have just played around a bit with your library while working on an OwlCore.Storage wrapper. Besides tmds/Tmds.Ssh#239, there are a few issues I've encountered with the library, especially when enumerating contents in directories:
|
@itsWindows11 thank you for making some time to check it out!
I will take a look.
I have no clue what this might be about. Do you have an exception message and stacktrace?
To do the same as SSH.NET, you can set |
@itsWindows11 if you have some time for it, this would be very useful to help me understand the issue.
You may want to address this regardless of the SSH library you are using. You could for example also store the sha256fingerprint of the ssh server. To help the user, you can use the SSH library to retrieve the fingerprint. For reference, this is the
(Note that Tmds.Ssh can use the OpenSSH |
Resolved / Related Issues
To prevent extra work, all changes to the Files codebase must link to an approved issue marked as
Ready to build
. Please insert the issue number following the hashtag with the issue number that this Pull Request resolves.Steps used to test these changes
Stability is a top priority for Files and all changes are required to go through testing before being merged into the repo. Please include a list of steps that you used to test this PR.
Currently waiting for #8974 to be implemented (since the current way of hooking filesystems to the UI is a total mess I cannot figure out) along with #15473, this PR is to lay the groundwork for resolving #2407 and will be marked as ready when everything is finished.