wolfssh/apps/wolfssh
John Safranek 5336ee5aca Handle a select() error in the client's peer reader
bytes held select()'s return in a word32, so a -1 became 0xFFFFFFFF and
ran the read path on descriptor sets select() had left alone. The
SIGWINCH handler interrupts this select, so a terminal resize reaches it.

- Keep the result in an int
- Retry on EINTR, report anything else
- Same fix readPeer() in examples/client/client.c already carries
2026-08-26 16:53:23 -05:00
..
README.md Don't build the client app against a single threaded wolfSSL 2026-08-26 16:53:23 -05:00
common.c PR feedback 2026-08-19 16:53:24 -07:00
common.h wolfssh/client: reject unsanitized fields before known_hosts write 2026-06-26 14:30:31 -07:00
include.am wolfSSH Client 2023-09-25 09:23:13 -07:00
wolfssh.c Handle a select() error in the client's peer reader 2026-08-26 16:53:23 -05:00

README.md

WOLFSSH CLIENT

The wolfSSH client will connect to a server and try to open a terminal. It'll default the username to your current username, and it will try to use your ecdsa private key to authenticate. The key file path is hard coded to $HOME/.ssh/id_ecdsa. It is currently far enough along I can use it. The private keys are the ones produced by the OpenSSL command line tool, not the ssh-keygen tool.

Phase 2 is going to bring reading the config files /etc/ssh/ssh_config and $HOME/.ssh/config. It will handle OpenSSH style modern keys. It will also have support for SSH-AGENT and forwarding.

Every session, terminal or command, runs its I/O on threads, so the client needs a threaded wolfSSL. Configuring --enable-sshclient against a single-threaded wolfSSL is an error, and --enable-all leaves the client out rather than failing.

Command Line Options

-E logfile    : Append the log to this file instead of stderr, and turn
                logging on. The log is empty unless the library has
                logging compiled in, with `--enable-debug` or
                `--enable-sshd`.
-G            : Print out the configuration as used.
-l login_name : Overrides the login name specified in the destination.
-p port       : Overrides the destination port number.
-V            : Print out the version.

The destination option is the only required option. It can be in the two following formats:

[user@]hostname
ssh://[user@]hostname[:port]

Anything after the destination is taken as a command to run on the server. With no command, the client opens an interactive terminal session.

The default value for user is the current user's login name. The default value for port is 22.