information about this package can be found in the README. here is a html-version of the README:
can be used, still needs a (security) review.
this package contains an ssh client, sftpfs and the library that the client uses. the goals are to let plan 9 & inferno users use resources from another (unix) machine: interactive shell, file server, and eventually network. for the future, an ssh server is planned.
first, make sure you have "util" installed.
change mkconfig if you do not have $ROOT set. now "mk install" to compile and install the files.
when building from within inferno, insert SYSHOST=Inferno and ROOT= in the mk invocations to override the values in the mkconfig.
the latest version can be found at:
http://www.ueber.net/code/r/ssh
all files expect except ssh-rsa.b and ssh-dsa.b in appl/cmd/auth/factotum/proto/ (which are derived from inferno) are in the public domain. this code has been written by mechiel lukkien, reachable at mechiel@ueber.net.
security problem: i don't know how big (number of bits) the dh client side secret should be, and whether we should verify if it's correct/secure.
factotum: change proto=rsa & proto=dsa to not query user for keys if none matching.
IO.findkeys() probably needs flag to not require a match:
"keymanc <-= (attrs, 1, kc); # TO DO: 1 => 0 for not needed"
sshlib: compression. it's hard in inferno, because we have to flush the buffers for each packet (but keep compression state). inferno's deflate filter doesn't support that.
see doc/rfc.txt for the relevant rfc's and some excerpts from it.
sshpubkey turns the public part of key (from factotum, or as generated by dsagen,rsagen) into a string you can put in an openssh .ssh/authorized_keys.
to clone & pull:
hg clone http://www.ueber.net/hgsrv/ssh/
hg clone static-http://www.ueber.net/who/mjl/hg/ssh/
download a snapshot of the latest version: ssh-72.tgz.
the files in the latest revision can be found at /hg/ssh/files/tip/. a specific revision can be access by replacing "tip" with the revision number, (partial) nodeid or tag name. a few direct links to useful files in the latest revision:
| rev | nodeid | when | diff | why |
|---|---|---|---|---|
| 72 | 87bb45a6b61e | 9 months | diff | set keepalive on connections |
| 71 | 693ab424978e | 9 months | diff | don't serve /dev/termctl, novt serves it now, read events from that. ... |
| 70 | 76c375d620c8 | 10 months | diff | typos in comments |
| 69 | d09ad0dc4f86 | 10 months | diff | do not crash when sshkeys file is not available. |
| 68 | 42be842cbd9d | 10 months | diff | use dial->dial for dialing. |
| 67 | f415d0a258c1 | 2 years | diff | sftpfs: better qid handling, various fixes. ... |
| 66 | d28cb2e87791 | 2 years | diff | add auth/sshkeys, to manage host keys. and small fix. ... |
| 65 | 94b2e6357c1f | 2 years | diff | better terminal handling... ... |
| 64 | 7043c30273a3 | 2 years | diff | small fixes. ... |
| 63 | e7e06aa94429 | 2 years | diff | rewrite a good part of sftpfs. ... |
| 62 | dad3a61c2cd6 | 2 years | diff | for sftpfs, allow remote path to mount to be specified & parse att... |
| 61 | 2132f5d00d44 | 2 years | diff | split sftp message parsing & packing into library, appl/lib/sftp.[bm]. ... |
| 60 | 866153ed26f9 | 2 years | diff | build & install rsa & dsa factotum code by default. make address ... |
| 59 | 0b81053419ff | 2 years | diff | a few fixes: ... |
| 58 | b0ccaeec4c1e | 2 years | diff | various improvements. ... |
| 57 | 668cd11ad027 | 2 years | diff | a lot more cleanup. ... |
| 56 | 0a4c8c04f955 | 2 years | diff | forgot to remove code that's now in sshfmt.b from sshlib.b |
| 55 | 983b2dfb5392 | 2 years | diff | split message formatting/parsing to separate lib. cleanup. ... |
| 54 | 5c39fc1f2852 | 2 years | diff | remove some unused code from sftp. try reading 32k as minimum in ssh. |
| 53 | 2fb97525826f | 2 years | diff | fix bug that lost that from remote... using negotiated kex method,... |
| 52 | ea84ad2f8470 | 2 years | diff | do not send data during key exchange. |