Suivant: GNU Privacy Guard, Précédent: Gérer les démons personnels, Monter: Services du dossier personnel [Table des matières][Index]
Le paquet OpenSSH contient un client, la
commande ssh
, qui vous permet de vous connecter à des machines
distantes avec le protocole SSH (shell sécurisé). Avec le module
(gnu home services ssh)
, vous pouvez configurer OpenSSH pour qu’il
fonctionne de manière prédictible, presque indépendamment de l’état de la
machine locale. Pour cela, vous devez instancier
home-openssh-service-type
dans votre configuration personnelle, comme
expliqué plus bas.
C’est le type de service pour configurer le client OpenSSH. Il a les fonctionnalités suivantes :
ssh
connaisse les hôtes auxquels vous vous connectez
régulièrement et leurs paramètres associés ;
sshd
, peut accepter pour se connecter à ce
compte utilisateur ;
Voici un exemple de service et sa configuration que vous pouvez ajouter au
champ services
de votre home-environment
:
(service home-openssh-service-type
(home-openssh-configuration
(hosts
(list (openssh-host (name "ci.guix.gnu.org")
(user "charlie"))
(openssh-host (name "chbouib")
(host-name "chbouib.example.org")
(user "supercharlie")
(port 10022))))
(authorized-keys (list (local-file "alice.pub")))))
L’exemple au-dessus liste deux hôtes et leurs paramètres. Par exemple,
lancer ssh chbouib
se connectera automatiquement à
chbouib.example.org
sur le port 10022, en se connectant en tant que
‘supercharlie’. En plus, il marque la clé publique dans
alice.pub comme autorisée pour les connexions entrantes.
La valeur associée à une instance de home-openssh-service-type
doit
être un enregistrement home-openssh-configuration
, décrit ci-dessous.
C’est le type de données représentant la configuration du client et du serveur OpenSSH dans l’environnement personnel. Il possède les champs suivants :
hosts
(par défaut : '()
)Une liste d’enregistrements openssh-host
qui spécifient les noms
d’hôte et les paramètres de connexion associés (voir plus bas). Cet liste
d’hôtes va dans ~/.ssh/config, que ssh
lit au démarrage.
known-hosts
(par défaut : *unspecified*
)Cela doit être soit :
*unspecified*
, auquel cas home-openssh-service-type
laisse à
ssh
et à l’utilisateur le soit de maintenir la liste des hôtes
connus dans ~/.ssh/known_hosts, ou
Le fichier ~/.ssh/known_hosts contient une liste de paires de nom
d’hôte et de clé d’hôte qui permet à ssh
d’authentifier les hôtes
auxquels vous vous connectez et de détecter de potentielles attaques par
usurpation. Par défaut, ssh
la met à jour sur la base du principe
TOFU, confiance à la première utilisation, ce qui signifie qu’il
enregistre la clé d’hôte dans ce fichier la première fois que vous vous
connectez. Ce comportement est préservé si known-hosts
est indiqué à
*unspecified*
.
Si vous fournissez à la place une liste de clés d’hôtes dès le départ dans
le champ known-hosts
, votre configuration devient auto-contenue et
sans état : elle peut être répliquée ailleurs ou à un autre moment. Préparer
cette liste peut être plutôt compliqué cependant, c’est pourquoi
*unspecified*
reste la valeur par défaut.
authorized-keys
(par défaut : #false
)The default #false
value means: Leave any
~/.ssh/authorized_keys file alone. Otherwise, this must be a list of
file-like objects, each of which containing an SSH public key that should be
authorized to connect to this machine.
Concrètement, ces fichiers sont concaténés et rendus disponibles dans
~/.ssh/authorized_keys. Si un serveur OpenSSH, sshd
, est
lancé sur cette machine, alors il peut prendre ce fichier en compte :
c’est ce que sshd
fait par défaut, mais soyez conscient qu’il peut
aussi être configuré pour l’ignorer.
add-keys-to-agent
(default: no
)This string specifies whether keys should be automatically added to a
running ssh-agent. If this option is set to yes
and a key is loaded
from a file, the key and its passphrase are added to the agent with the
default lifetime, as if by ssh-add
. If this option is set to
ask
, ssh
will require confirmation. If this option is set to
confirm
, each use of the key must be confirmed. If this option is
set to no
, no keys are added to the agent. Alternately, this option
may be specified as a time interval to specify the key’s lifetime in
ssh-agent
, after which it will automatically be removed. The
argument must be no
, yes
, confirm
(optionally followed
by a time interval), ask
or a time interval.
Les champs de openssh-host
disponibles sont :
name
(type : string)Name of this host declaration. A openssh-host
must define only
name
or match-criteria
. Use host-name \"*\"
for
top-level options.
host-name
(type : peut-être-chaine)Nom d’hôte — p. ex. "toto.exemple.org"
ou "192.168.1.2"
.
match-criteria
(type: maybe-match-criteria)When specified, this string denotes the set of hosts to which the entry
applies, superseding the host-name
field. Its first element must be
all or one of ssh-match-keywords
. The rest of the elements are
arguments for the keyword, or other criteria. A openssh-host
must
define only name
or match-criteria
. Other host configuration
options will apply to all hosts matching match-criteria
.
address-family
(type: maybe-address-family)Address family to use when connecting to this host: one of AF_INET
(for IPv4 only), AF_INET6
(for IPv6 only). Additionally, the field
can be left unset to allow any address family.
identity-file
(type : peut-être-chaine)Le fichier d’identité à utiliser — p. ex.
"/home/charlie/.ssh/id_ed25519"
.
port
(type : peut-être-entier-naturel)Numéro de port TCP sur lequel se connecter.
user
(type : peut-être-chaine)Le nom d’utilisateur sur la machine distante.
forward-x11?
(type: maybe-boolean)Indique s’il faut relayer les connexions clientes distantes vers l’affichage graphique X11 local.
forward-x11-trusted?
(type: maybe-boolean)Indique si les client X11 distants ont l’accès complet à l’affichage graphique X11 original.
forward-agent?
(type: maybe-boolean)Indique si l’agent d’authentification (s’il y en a un) est relayé vers la machine distante.
compression?
(type: maybe-boolean)Indique s’il faut compresser les données en transit.
proxy
(type: maybe-proxy-command-or-jump-list)The command to use to connect to the server or a list of SSH hosts to jump
through before connecting to the server. The field may be set to either a
proxy-command
or a list of proxy-jump
records.
As an example, a proxy-command
to connect via an HTTP proxy at
192.0.2.0 would be constructed with: (proxy-command "nc -X connect -x
192.0.2.0:8080 %h %p")
.
Available proxy-jump
fields are:
user
(type : peut-être-chaine)Le nom d’utilisateur sur la machine distante.
host-name
(type: string)Host name—e.g., foo.example.org
or 192.168.1.2
.
port
(type : peut-être-entier-naturel)Numéro de port TCP sur lequel se connecter.
host-key-algorithms
(type : peut-être-liste-de-chaine)La liste des algorithmes de clé hôtes acceptées — p. ex.
'("ssh-ed25519")
.
accepted-key-types
(type : peut-être-liste-de-chaine)La liste des types de clés publiques utilisatrices acceptées.
extra-content
(par défaut : ""
) (type : raw-configuration-string)Contenu supplémentaire ajouté tel-quel à la fin de ce block Host
dans
~/.ssh/config.
The parcimonie
service runs a daemon that slowly refreshes a GnuPG
public key from a keyserver. It refreshes one key at a time; between every
key update parcimonie sleeps a random amount of time, long enough for the
previously used Tor circuit to expire. This process is meant to make it
hard for an attacker to correlate the multiple key update.
As an example, here is how you would configure parcimonie
to refresh
the keys in your GnuPG keyring, as well as those keyrings created by Guix,
such as when running guix import
:
(service home-parcimonie-service-type
(home-parcimonie-configuration
(refresh-guix-keyrings? #t)))
This assumes that the Tor anonymous routing daemon is already running on
your system. On Guix System, this can be achieved by setting up
tor-service-type
(voir tor-service-type
).
The service reference is given below.
This is the service type for parcimonie
(Parcimonie’s web
site). Its value must be a home-parcimonie-configuration
, as shown
below.
Available home-parcimonie-configuration
fields are:
parcimonie
(default: parcimonie
) (type: file-like)The parcimonie package to use.
verbose?
(default: #f
) (type: boolean)Whether to have more verbose logging from the service.
gnupg-already-torified?
(default: #f
) (type: boolean)Whether GnuPG is already configured to pass all traffic through Tor.
refresh-guix-keyrings?
(default: #f
) (type: boolean)Guix creates a few keyrings in the $XDG_CONFIG_DIR, such as when
running guix import
(voir Invoquer guix import
). Setting this to
#t
will also refresh any keyrings which Guix has created.
extra-content
(default: #f
) (type: raw-configuration-string)Raw content to add to the parcimonie command.
The OpenSSH package includes a daemon, the
ssh-agent
command, that manages keys to connect to remote machines
using the SSH (secure shell) protocol. With the (gnu home
services ssh)
service, you can configure the OpenSSH ssh-agent to run upon
login. Voir home-gpg-agent-service-type
, for an
alternative to OpenSSH’s ssh-agent
.
Voici un exemple de service et sa configuration que vous pouvez ajouter au
champ services
de votre home-environment
:
(service home-ssh-agent-service-type
(home-ssh-agent-configuration
(extra-options '("-t" "1h30m"))))
This is the type of the ssh-agent
home service, whose value is a
home-ssh-agent-configuration
object.
Available home-ssh-agent-configuration
fields are:
openssh
(default: openssh
) (type: file-like)Le paquet OpenSSH à utiliser.
socket-directory
(default: XDG_RUNTIME_DIR
/ssh-agent"
) (type: gexp)The directory to write the ssh-agent’s socket file.
extra-options
(par défaut : '()
)Extra options will be passed to ssh-agent
, please run man
ssh-agent
for more information.
Suivant: GNU Privacy Guard, Précédent: Gérer les démons personnels, Monter: Services du dossier personnel [Table des matières][Index]