1
1
mirror of https://github.com/wez/wezterm.git synced 2024-11-25 21:07:39 +03:00
Commit Graph

32 Commits

Author SHA1 Message Date
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
Wez Furlong
d3deca60cd ssh-config: allow multiple IdentityFile lines in ssh config
The man page states:

> For each parameter, the first obtained value will be used.

but then later says:

> It is possible to have multiple identity files specified in
> configuration files; all these identities will be tried in sequence.
> Multiple IdentityFile directives will add to the list of identities
> tried (this behaviour differs from that of other configuration
> directives).

So that's what this commit does
2021-06-30 12:08:28 -07:00
Wez Furlong
d657721163 fix lingering ssh connections
Similar to 3f6ff534d3, we need to
tickle the mux to detect when the session terminates.

In this case we can relatively simply schedule an async wait without
spawning an additional thread.
2021-05-28 22:16:31 -07:00
Wez Furlong
3093fb3eb6 wezterm-ssh: process Include statements
refs: https://github.com/wez/wezterm/issues/824
2021-05-28 22:16:24 -07:00
Wez Furlong
3f6ff534d3 windows: fix lingering cmd.exe panes
Since removing the regular periodic background tasks, we're now
prone to not noticing child processes exiting.

This commit explicictly schedules a thread to do that on Windows
so that we can close a tab as soon as it exits.
2021-05-28 15:11:29 -07:00
Wez Furlong
f78190ec9c filedescriptor: remove anyhow from public interface
Use thiserror instead
2021-05-23 14:24:01 -07:00
Wez Furlong
494fa999bb fix system ssh config path 2021-05-03 19:54:09 -07:00
Wez Furlong
57ab9e36f5 restore features post wezterm-ssh release 2021-05-03 09:58:27 -07:00
Wez Furlong
4af66ff4b1 wezterm-ssh: prep for release 2021-05-03 09:57:04 -07:00
Wez Furlong
e119313e37 ssh: add basic support for Match Host, Match User in ssh_config parser 2021-05-01 08:53:51 -07:00
Wez Furlong
49b0ef2356 wezterm-ssh: restore win32 build feature 2021-04-30 10:30:06 -07:00
Wez Furlong
5fb2db10fe prep for wezterm-ssh release
This temporarily disables the win32 openssl build stuff; need
https://github.com/alexcrichton/ssh2-rs/pull/216 to land before
this package can publish with that feature.
2021-04-30 10:27:39 -07:00
Wez Furlong
5b9be21165 prep for pty 0.4 release 2021-04-30 10:17:25 -07:00
Wez Furlong
3df9527371 ssh: expand ~/ in ssh config
refs: https://github.com/wez/wezterm/issues/729
2021-04-24 19:25:51 -07:00
Wez Furlong
ecc500af05 ssh: don't override the ssh config User value 2021-04-08 16:17:49 -07:00
Wez Furlong
3ee86a2e8b wezterm-ssh: don't assume sh is in /bin
This improves compat with nixos
2021-03-29 21:11:54 -07:00
Wez Furlong
c6cd1a6a33 add placeholder for agent forwarding
It's not fully implemented by libssh2.
refs: https://github.com/libssh2/libssh2/issues/535
2021-03-28 18:27:03 -07:00
Wez Furlong
98604ff52e Add support for ProxyCommand
`wezterm ssh "-oProxyCommand=nc localhost 22" localhost`

refs: #233
2021-03-28 08:58:26 -07:00
Wez Furlong
f6db68564b wezterm-ssh: don't accidentally blend stdout into stderr 2021-03-28 07:29:57 -07:00
Wez Furlong
369888c94e wezterm-client: cut over to new wezterm-ssh bits
refs: https://github.com/wez/wezterm/issues/507
2021-03-28 07:18:38 -07:00
Wez Furlong
99131a2a98 fixup build on windows, and update tests 2021-03-27 20:40:40 -07:00
Wez Furlong
e103653923 RemoteSshDomain now uses wezterm-ssh crate
There are a few notable changes as a result:

* A number of `.ssh/config` options are now respected; host matching
  and aliasing and identity file are the main things
* The authentication prompt is inline in the window, rather than
  popping up a separate authentication window

Refs: https://github.com/wez/wezterm/issues/457
2021-03-27 18:12:34 -07:00
Wez Furlong
13f13d7309 wezterm-ssh: add pubkey based auth
I can't get this to succeed though; I suspect there may be a lingering
bug from libssh2 and/or trailing support for newer openssh features.

refs: https://github.com/wez/wezterm/issues/457
2021-03-26 23:54:57 -07:00
Wez Furlong
6bb941b653 wezterm-ssh: flesh out improved ssh crate
This implementation should be less prone to stutters/stalls
than my earlier hacky implementation in pty/src/ssh.rs
2021-03-26 21:57:44 -07:00
Wez Furlong
945c95faa7 fixup .ssh path on windows 2021-03-26 10:03:22 -07:00
Wez Furlong
bc5c1fcfc4 wezterm-ssh: set defaults for user, port and agent 2021-03-26 08:51:12 -07:00
Aaron Abramov
786888ce0a update k9 to 0.11.0 to make it work with rustc@1.51.0
1.51.0 no longer takes non string literals in `panic()`. k9@0.11.0 fixes that
2021-03-25 10:39:00 -07:00
Wez Furlong
dfca18db02 add hostname to ssh config map 2021-03-23 21:18:03 -07:00
Wez Furlong
b0572bbf1f Add ssh_config parser
refs: https://github.com/wez/wezterm/issues/457
2021-03-23 12:58:41 -07:00