SSH terminal client

A client of the Terminal service that connects to a shell on a remote
SSH server.

It is configured with a "host" file found in its root directory with the
following format:
<host name="sdf-eu.org" port="22" user="root" pass="foo" known="yes"/>

The port, pass, and known attributes are optional. The client will first
try to authenticate with a keypair found in the root directory with a
fallback to password authentication. The client will automatically
disconnect from hosts that are not found in "/known_hosts", unless the
"known" attribute is set to the negative in the host file.
This commit is contained in:
Emery Hemingway
2018-07-16 19:28:52 +02:00
committed by Norman Feske
parent 2ba33d38a9
commit 5fff9d4b5b
10 changed files with 628 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
SSH terminal client
A Nitpicker terminal that connects to a shell on a remote SSH server.
It is configured with a "host" file found in its root directory with the
following format:
<host name="sdf-eu.org" port="22" user="root" pass="foo" known="yes"/>
The port, pass, and known attributes are optional. The client will first
try to authenticate with a keypair found in the root directory with a
fallback to password authentication. The client will automatically
disconnect from hosts that are not found in "/known_hosts", unless the
"known" attribute is set to a false in the host file.

View File

@@ -0,0 +1,10 @@
_/pkg/terminal
_/src/libc
_/src/libcrypto
_/src/nit_fb
_/src/vfs
_/src/zlib
_/src/vfs_jitterentropy
_/src/libssh
_/src/ssh_client
_/src/vfs_lwip

View File

@@ -0,0 +1 @@
2018-07-17-k fb159d9fe48bb3081f79f0d78e4b41dba0a164a4

View File

@@ -0,0 +1,82 @@
<runtime ram="32M" caps="512" binary="init">
<requires>
<file_system/>
<nic/>
<nitpicker/>
<timer/>
</requires>
<content>
<rom label="init"/>
<rom label="ld.lib.so"/>
<rom label="libc.lib.so"/>
<rom label="libcrypto.lib.so"/>
<rom label="libm.lib.so"/>
<rom label="libssh.lib.so"/>
<rom label="nit_fb"/>
<rom label="ssh_client"/>
<rom label="terminal"/>
<rom label="vfs.lib.so"/>
<rom label="vfs_jitterentropy.lib.so"/>
<rom label="vfs_lwip.lib.so"/>
<rom label="zlib.lib.so"/>
</content>
<config>
<parent-provides>
<service name="ROM"/>
<service name="PD"/>
<service name="RM"/>
<service name="CPU"/>
<service name="LOG"/>
<service name="Timer"/>
<service name="File_system"/>
<service name="Nic"/>
<service name="Nitpicker"/>
</parent-provides>
<default-route> <any-service> <parent/> <any-child/> </any-service> </default-route>
<default caps="100"/>
<start name="nit_fb">
<resource name="RAM" quantum="4M"/>
<provides> <service name="Framebuffer"/> <service name="Input"/> </provides>
<config xpos="10" ypos="10" initial_width="800" initial_height="600"/>
</start>
<start name="terminal">
<resource name="RAM" quantum="4M"/>
<provides> <service name="Terminal"/> </provides>
<config>
<vfs> <dir name="fonts"> <fs/> </dir> </vfs>
</config>
<route>
<service name="File_system"> <parent label="fonts"/> </service>
<any-service> <parent/> <any-child/> </any-service>
</route>
</start>
<start name="ssh_client" caps="256">
<resource name="RAM" quantum="32M" />
<exit propagate="yes"/>
<config>
<vfs>
<fs/>
<dir name="dev">
<log/>
<jitterentropy name="random"/>
</dir>
<dir name="socket"> <lwip dhcp="yes"/> </dir>
</vfs>
<libc stdout="/dev/log" stderr="/dev/log" socket="/socket"/>
</config>
<route>
<service name="File_system"> <parent label="ssh"/> </service>
<any-service> <parent/> <any-child/> </any-service>
</route>
</start>
</config>
</runtime>