mirror of https://gogs.blitter.com/RLabs/xs
Merge branch 'master' of ssh://tripe.blitter.com/var/git/hkexsh
This commit is contained in:
commit
c1a23b68ae
37
README.md
37
README.md
|
@ -3,9 +3,10 @@ HKExSh
|
|||
|
||||
'hkexsh' (HerraduraKEx shell) is a golang implementation of a simple
|
||||
remote shell client and server, similar in role to ssh, offering
|
||||
encrypted interactive and non-interactive sessions. The client and server
|
||||
programs (hkexsh and hkexshd) use a mostly drop-in replacement for golang's
|
||||
standard golang/pkg/net facilities (net.Dial(), net.Listen(), net.Accept()
|
||||
encrypted interactive and non-interactive sessions as well as file copying.
|
||||
|
||||
The client and server programs (hkexsh and hkexshd) use a mostly drop-in
|
||||
replacement for golang's standard golang/pkg/net facilities (net.Dial(), net.Listen(), net.Accept()
|
||||
and the net.Conn type), which automatically negotiate keying material for
|
||||
'secure' sockets using the experimental HerraduraKEx key exchange algorithm
|
||||
first released at
|
||||
|
@ -69,12 +70,36 @@ To set accounts & passwords:
|
|||
* $ sudo hkexpasswd/hkexpasswd -u joebloggs
|
||||
* $ <enter a password, enter again to confirm>
|
||||
|
||||
Running Clent and Server. In separate shells:
|
||||
Running Clent and Server
|
||||
--
|
||||
* [A]$ sudo hkexshd/hkexshd & # add -d for debugging
|
||||
* [B]$ hkexsh/hkexsh -u joebloggs # add -d for debugging
|
||||
In separate shells A and B:
|
||||
* [A]$ cd hkexshd && sudo ./hkexshd & # add -d for debugging
|
||||
|
||||
Interactive shell
|
||||
* [B]$ cd hkexsh && ./hkexsh joebloggs@host-or-ip # add -d for debugging
|
||||
|
||||
One-shot command
|
||||
* [B]$ cd hkexsh && ./hkexsh -x "ls /tmp" joebloggs@host-or-ip
|
||||
|
||||
NOTE if running client (hkexsh) with -d, one will likely need to run 'reset' afterwards
|
||||
to fix up the shell tty afterwards as stty echo may not be restored if client crashes
|
||||
or is interrupted.
|
||||
|
||||
File Copying using hkexcp
|
||||
--
|
||||
hkexcp is a symlink to hkexsh, and the binary checks its own filename to determine whether it is being invoked in 'shell' or 'copy' mode. Refer to the '-h' output for differences in accepted options.
|
||||
|
||||
General remote syntax is: user@server:[/]src-or-dest-path
|
||||
If no leading / is specified in src-or-dest-path, it is assumed to be relative to $HOME of the remote user.
|
||||
File operations are all performed as the remote user, so account permissions apply as expected.
|
||||
|
||||
Local (client) to remote (server) copy:
|
||||
* cd hkexsh && ./hkexcp fileA /some/where/fileB /some/where/else/dirC joebloggs@host-or-ip:/remoteDir
|
||||
|
||||
Remote (server) to local (client) copy:
|
||||
* cd hekxsh && ./hkexcp joebloggs@host-or-ip:/remoteDirOrFile /some/where/local/Dir
|
||||
|
||||
|
||||
NOTE: Renaming while copying is NOT supported (ie., like cp's 'cp /foo/bar/fileA ./fileB). Put another way, the destination (whether local or remote) is ALWAYS a dir.
|
||||
|
||||
hkexcp uses tar with gzip compression (ala a 'tarpipe') under the hood, sending tar data over the hkex encrypted channel. Use the -d flag on client or server to see the generated tar commandlines if you're curious.
|
||||
|
|
Loading…
Reference in New Issue