OpenSSH
OpenSSH is an SSH client and server software. It allows you to connect to remote machines securely.
Main Configuration
The main configuration is not complete compared to the configuration possibilities of the client. It however implements a big part of the possibilities.
Scheme Variable: ssh-home-type
The type of service that generates configuration files for OpenSSH. Its value is an ssh-configuration object.
Data Type: ssh-configuration
Data type that represents the OpenSSH configuration. This data type has the following fields:
- authorized-keys (default '()): A list of strings, each denoting an authorized key. This is the set of the public keys that can be used to connect as this user.
- known-hosts (default '()): A list of ssh-known-host-configuration objects that denote the list of hosts whose identity is known. You will not be asked to validate these identities again, but will not be able to connect to a host that doesn't match its known public key, for your security.
- hosts (default: '()): A list of ssh-host-configuration objects, each denoting connection parameters for specific hosts.
- default-host: An ssh-host-configuration object that denotes the default connection options, such as a private key (also known as an identity file).
Example
(user-home
ssh-home-type
(ssh-configuration
(authorized-keys '("ssh-rsa ... alice@computilo"))
(known-hosts
(list
(ssh-known-host-configuration
(names '("git.savannah.gnu.org" "git.sv.gnu.org" "208.118.235.201"
"209.51.188.201"))
(key (string-append
"AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBP9c1Z2f4O"
"HxymvLxqxQ/hY1g0ol0/iiXUrVFGZBBq4h5gD05c7Gw9rRrcrvF9XvumBvOghO"
"QzDSZZLRWvFGocA=")))))
(default-host
(ssh-host-configuration
(identity-file "/data/alice/.ssh/id_rsa")))))
Known Hosts Configuration
Each known host can be configured with the following data type:
Data Type: ssh-known-host-configuration
This data type represents a known host. It contains the following fields:
- names: a list of names or ip addresses that correspond to this host.
- algo (default: "ecdsa-sha2-nistp256"): the algorithm used by the server to identify itself.
- key: The public key with which the server identifies itself.
Host Configuration
Each host to which you may desire to connect to can be configured with the following data type:
Data Type: ssh-host-configuration
This data type represents a host. It contains the following fields:
- host-name (default: "*"): The network name of the server.
- identity-file (default: #f): A private key file used to identify on the
server. If not set, the default file will be used or
~/.ssh/id_rsa
. - name (default: "*"): A name used to identify this host. If, for instance,
you choose "foo", you will be able to connect to this host with this configuration
with
ssh foo
. - port (default: #f): The port number on which the host listens for ssh connections. If not set, the default port will be used or 22.
- user (default: #f): The username with which to connect. If not set, the default user name will be used or your own user name.
If you connect to a configured host with its name, you can still override values
on the command line in the usual way. For instance, if you want to connect to
foo, but on a different port, you can run ssh foo -p 2222
. Additionally, this
data type is used for default configuration. The default host will set default
values for every other hosts, and if not set anywhere, global defaults apply.