Wez Furlong
9d44cc1720
ssh: introduce SftpWrap
2021-10-19 20:33:30 -07:00
Wez Furlong
a6022f5c65
ssh: allow selecting libssh or ssh2 backend via config
...
Pass this via the ssh option overrides:
```
wezterm ssh -o wezterm_ssh_backend=libssh hostname
```
2021-10-19 20:33:30 -07:00
Wez Furlong
1f073db776
ssh: flatten out session module
2021-10-19 20:33:30 -07:00
Wez Furlong
75f946c22c
ssh: split SessionWrap out
2021-10-19 20:33:30 -07:00
Wez Furlong
65eaa44b0d
ssh: split FileWrap out
2021-10-19 20:33:30 -07:00
Wez Furlong
e8b83b29c9
ssh: split ChannelWrap out
2021-10-19 20:33:30 -07:00
Wez Furlong
228df03059
ssh: move sftp module to top level
...
was getting too deep in there!
2021-10-19 20:33:30 -07:00
Wez Furlong
44bbfd2894
ssh: split SessionInner, out
2021-10-19 20:33:30 -07:00
Wez Furlong
bd47566681
ssh: Improve some logging/diagnostics
2021-10-19 20:33:30 -07:00
Wez Furlong
a8b64a2756
Run with libssh
...
This works, but on macOS, there is a segfault in openssl when the
session is closed... I'm going to try this on Linux to see if it
is consistent behavior and ponder next steps.
2021-10-19 20:33:30 -07:00
Wez Furlong
0bf50924b1
ssh: stub out libssh impl
2021-10-19 20:33:30 -07:00
Wez Furlong
f1e5c59566
ssh: introduce wrapper enum
...
This is a pre-cursor step to adding libssh support
2021-10-19 20:33:30 -07:00
Wez Furlong
d635512138
wezterm-ssh: restore dep after cargo publish
2021-10-10 16:38:03 -07:00
Wez Furlong
163783f483
wezterm-ssh: prep for cargo publish
2021-10-10 16:35:12 -07:00
Wez Furlong
2da43e3666
ssh: unwrap -> error handling
...
The port number is guaranteed to be set in the config parser,
just like for the host and user, so the unwrap is "OK", but it's
less brittle to handle the error consistent with the others here.
2021-10-10 15:03:21 -07:00
Chip Senkbeil
56c366cc45
Remove Metadata::len and Metadata::is_readonly; replace sftp unwrap() with expect()
2021-10-10 14:54:45 -07:00
Chip Senkbeil
2415a44d74
Switch to camino::{Utf8PathBuf, Utf8Path}
2021-10-10 14:54:45 -07:00
Chip Senkbeil
1ff2a1eb82
Add bitflags type safety to sftp flags
2021-10-10 14:54:45 -07:00
Chip Senkbeil
d15789d2c0
Finish refactoring names of methods based on wez feedback
2021-10-10 14:54:45 -07:00
Chip Senkbeil
c3516341cb
Apply renames from code review (needs full refactoring)
...
Co-authored-by: Wez Furlong <wez@wezfurlong.org>
2021-10-10 14:54:45 -07:00
Chip Senkbeil
9a8a0f35e7
Update realpath test to support error or ok
2021-10-10 14:54:45 -07:00
Chip Senkbeil
0cc426df7d
Reenable PAM as Fedora was complaining about it being disabled
2021-10-10 14:54:45 -07:00
Chip Senkbeil
4befffccd4
Add ignore attr to non-linux/non-macos tests
2021-10-10 14:54:45 -07:00
Chip Senkbeil
7d5c301c66
Ensure /run/sshd exists, explicitly set username in sshd fixture, add back use_privilege_mode no
2021-10-10 14:54:45 -07:00
Chip Senkbeil
d98a2cbbc2
Remove deprecated privilege separation from sshd
2021-10-10 14:54:45 -07:00
Chip Senkbeil
1dd3d5cdf0
Update tests to generate keys using old PEM format
2021-10-10 14:54:45 -07:00
Chip Senkbeil
072bb1c470
Create SftpError type and associated structs to provide more verbose errors for sftp
2021-10-10 14:54:45 -07:00
Chip Senkbeil
4a0376e6de
Refactor exposed ssh2 types to wrapper types
2021-10-10 14:54:45 -07:00
Chip Senkbeil
86c307a214
Add tests for File::readdir and File::stat; change .cirrus.yml to set home directory permissions
2021-10-10 14:54:45 -07:00
Chip Senkbeil
2e19344b22
Add drop impl to file struct; add missing file methods (untested)
2021-10-10 14:54:45 -07:00
Chip Senkbeil
50a0372e17
Fix file asyncread and asyncwrite future handling by keeping stateful futures
2021-10-10 14:54:45 -07:00
Chip Senkbeil
35043e9341
Fix four failing tests and clean up sshd setup to not require ssh-add
2021-10-10 14:54:45 -07:00
Chip Senkbeil
d797b3f27e
Add tests for remaining sftp methods off of sftp channel -- 4 are failing
2021-10-10 14:54:45 -07:00
Chip Senkbeil
ec09a6ab68
Add tests for stat and lstat
2021-10-10 14:54:45 -07:00
Chip Senkbeil
dc61ba2774
Add a couple more tests for sftp to cover mkdir and rmdir
2021-10-10 14:54:45 -07:00
Chip Senkbeil
259ac04ce5
Refactor sftp interaction into a separate struct that uses SessionSender underneath
2021-10-10 14:54:45 -07:00
Chip Senkbeil
fca3bd6904
Add some initial tests to wezterm-ssh, ignoring read/write of file as those are hanging
2021-10-10 14:54:45 -07:00
Chip Senkbeil
23fd145ceb
Rewrite File to be smol::io::{AsyncRead, AsyncWrite}
2021-10-10 14:54:45 -07:00
Chip Senkbeil
9c8bdfd177
Add untested sftp methods
2021-10-10 14:54:45 -07:00
Chip Senkbeil
55b85b5424
Re-export portable_pty::Child as it is available in a public API
2021-10-10 14:54:45 -07:00
Chip Senkbeil
e25c4f4a22
Re-export filedescriptor::FileDescriptor as it is available in a public API
2021-10-10 14:54:45 -07:00
Chip Senkbeil
2c69c306b6
Bump to 0.2.0
2021-10-10 14:54:45 -07:00
Chip Senkbeil
e7110b20c4
Expose vendored-openssl feature of ssh2 from wezterm-ssh
2021-10-10 14:54:45 -07:00
Wez Furlong
bb2c534a56
ssh: my openssl+windows ssh2 patch was published upstream
...
So remove my local patch
2021-10-10 07:29:54 -07:00
Wez Furlong
8da9196491
ssh: Host is space delimited, not comma delimited
...
closes : #1196
2021-10-03 08:09:04 -07:00
Wez Furlong
7dd77a03da
ssh: improve error message around setenv failing
...
refs: #1015
2021-08-16 09:40:33 -07:00
Wez Furlong
f6a7df9678
ssh: avoid looping forever if the connection drops
...
I saw this in the stderr logs when the connection was offline:
```
2021-07-17T01:54:28.036Z ERROR wezterm_ssh::session > Failed to write data to channel: Failure while draining incoming flow. Now
what?
2021-07-17T01:54:28.036Z ERROR wezterm_ssh::session > Failed to write data to channel: Failure while draining incoming flow. Now
what?
2021-07-17T01:54:28.142Z ERROR wezterm_ssh::session > Failed to write data to channel: Failure while draining incoming flow. Now
what?
```
This commit propagates the error rather than logging and ignoring it.
In addition, remove a couple of sources of blocking or panicking
that are now unmasked by this.
Possibly the root cause of https://github.com/wez/wezterm/issues/857
2021-07-16 19:31:37 -07:00
Wez Furlong
91d6344180
weird dependency hack for mac+windows
...
Adding an edge from wezterm-ssh -> async_ossl causes the
openssl vendoring feature selection logic to trigger, which
in turn allows `cargo build -p window --examples` to succeed
again on macos.
2021-07-09 20:34:42 -07:00
Wez Furlong
ba42367fbf
ssh: expand %u token
2021-06-30 13:32:55 -07:00
Wez Furlong
f43388c72d
ssh: also read windows system ssh config file
2021-06-30 12:19:40 -07:00