# -*- mode: org; -*-
* Examples
This directory includes an examples of programs that use Guile-SSH
library to access SSH protocol.
Executable =.scm= files are produced from =.scm.in= files during the build
process.
** =sssh.scm=
Scheme Secure Shell (SSSH) uses Guile-SSH API to implement basic SSH client
functionality.
*** Usage
Please see
#+BEGIN_EXAMPLE
$ ./sssh.scm --help
#+END_EXAMPLE
for information about program usage.
*** Examples
#+BEGIN_EXAMPLE
$ ./sssh.scm --identity=~/.ssh/id_rsa --user=avp localhost "uname -a"
#+END_EXAMPLE
** =ssshd.scm=
Scheme Secure Shell Daemon (SSSHD) uses Guile-SSH API to implement basic
SSH server functionality.
** =echo=
Echo client and server.
** =rrepl.scm=
A demo program that allows to connect to a remote REPL (RREPL) server. Pass
=--help= (or =-h=) flag to the program to get usage information.
** =rpc=
RPC over an SSH tunnel.
** =sscp.scm=
*** Usage
#+BEGIN_EXAMPLE
$ sscp avp@127.0.0.1:/etc/profile profile
#+END_EXAMPLE
** =pg-tunnel.scm=
An example of using Guile-SSH tunnels and [[http://www.nongnu.org/guile-pg/][Guile-PG]] to access a remote
PostgreSQL database.
*** Usage
Please see
#+BEGIN_EXAMPLE
$ ./pg-tunnel.scm --help
#+END_EXAMPLE
for information about program usage.
*** Examples
#+BEGIN_EXAMPLE
$ ./pg-tunnel.scm --host=example.org --dbname=example --user=alice \
'select * from people'
#+END_EXAMPLE
** =uptop.scm=
Connect to a remote host, execute =top= command on it and print the output
in uppercase letters, with terminal control characters intact.
The program shows usage of remote pipes (from =(ssh popen)= module.)
*** Usage
#+BEGIN_EXAMPLE
./uptop.scm
#+END_EXAMPLE
The program can be stopped by hitting Ctrl-C.