mirror of https://github.com/wolfSSL/wolfssh.git
99 lines
2.3 KiB
Markdown
99 lines
2.3 KiB
Markdown
wolfssh
|
|
=======
|
|
|
|
wolfSSL's Embeddable SSH Server
|
|
|
|
building
|
|
--------
|
|
|
|
From the source directory run:
|
|
|
|
$ ./autogen.sh
|
|
$ ./configure
|
|
$ make
|
|
$ make check
|
|
|
|
The `autogen.sh` script only has to be run the first time after cloning the
|
|
repository. If you have already run it or are using code from a source
|
|
archive, you should skip it.
|
|
|
|
examples
|
|
--------
|
|
|
|
The directory `examples` contains an echoserver that any client should be able
|
|
to connect to. From the terminal run:
|
|
|
|
$ ./examples/echoserver/echoserver
|
|
|
|
From another terminal run:
|
|
|
|
$ ssh_client localhost -p 22222
|
|
|
|
The server will send a canned banner to the client:
|
|
|
|
CANNED BANNER
|
|
This server is an example test server. It should have its own banner, but
|
|
it is currently using a canned one in the library. Be happy or not.
|
|
|
|
Characters typed into the client will be echoed to the screen by the server.
|
|
If the characters are echoed twice, the client has local echo enabled.
|
|
|
|
testing notes
|
|
-------------
|
|
|
|
After cloning the repository, be sure to make the testing private keys read-
|
|
only for the user, otherwise ssh_client will tell you to do it.
|
|
|
|
$ chmod 0600 ./certs/key-gretel.pem ./certs/key-hansel.pem \
|
|
./certs/key-ecc.pem
|
|
|
|
Authentication against the example echoserver can be done with a password or
|
|
public key. To use a password the command line:
|
|
|
|
$ ssh_client -p 22222 USER@localhost
|
|
|
|
Where the `USER` and password pairs are:
|
|
|
|
jill:upthehill
|
|
jack:fetchapail
|
|
|
|
To use public key authentication use the command line:
|
|
|
|
$ ssh_client -i ./certs/key-USER.pem -p 22222 USER@localhost
|
|
|
|
Where the user can be `gretel` or `hansel`.
|
|
|
|
|
|
coding standard
|
|
---------------
|
|
|
|
1. Exceptions are allowed with good reason.
|
|
|
|
2. Follow the existing style.
|
|
|
|
3. Try not to shorthand variables, except for ijk as indicies.
|
|
|
|
4. Lengths of arrays should have the array name followed by Sz.
|
|
|
|
5. Single return per function.
|
|
|
|
6. Check all incoming parameters.
|
|
|
|
7. No gotos.
|
|
|
|
8. Check all return codes. It feels a little tedious, but the preferred method
|
|
is running checks against success. This way if a function returns an error, the
|
|
code will drop to the end.
|
|
|
|
```
|
|
ret = functionCall(parameter);
|
|
if (ret == SUCCESS)
|
|
ret = secondFunctionCall(otherParameter);
|
|
if (ret == SUCCESS)
|
|
ret = thirdFunctionCall(aParameter, anotherParameter);
|
|
cleanUp();
|
|
return ret;
|
|
```
|
|
|
|
|