Man page - ssh(1)

Packages contains this manual

Available languages:

en fr pl tr uk ro zh_TW zh_CN de

Manual


SSH (1) General Commands Manual SSH (1)

NOM

ssh — Client de connexion à distance d’OpenSSH

SYNOPSIS

ssh [ -46AaCfGgKkMNnqsTtVvXxYy ] [ -B interface_sortie ] [ -b adr_sortie ] [ -c algos_chiffrement ] [ -D [

adr_sortie : ] port ] [ -E fichier_journal ] [ -e caractÚre_échappement ] [ -F fichier_configuration ] [ -I pkcs11 ] [ -i fichier_identité ] [ -J destination ] [ -L adresse ] [ -l nom_connexion ] [ -m algos_MAC ] [ -O commande_de_contrÎle ] [ -o option ] [ -P symbole ] [ -p port ] [ -R adresse ] [ -S socket_contrÎle ] [ -W machine : port ] [ -w tunnel_local [: tunnel_distant ]] destination [ commande [ argument ... ]]

ssh [ -Q option_requĂȘte ]

DESCRIPTION

ssh (le client SSH) est un programme permettant de se connecter Ă  une machine distante et d’exĂ©cuter des commandes sur cette derniĂšre. Il a pour but d’établir des communications chiffrĂ©es sĂ©curisĂ©es entre deux machines non dignes de confiance sur un rĂ©seau non sĂ©curisĂ©. Les connexions X11, les ports TCP arbitraires et les sockets de domaine UNIX peuvent aussi transiter par le canal sĂ©curisĂ©.

ssh se connecte et s’identifie sur la machine destination qui peut ĂȘtre spĂ©cifiĂ©e Ă  l’aide de [

utilisateur@ ]nommachine ou d’un URI de la forme ssh://[
utilisateur@ ]nommachine[:port]. L’utilisateur doit prouver son identitĂ© auprĂšs de la machine distante en utilisant une mĂ©thode parmi plusieurs (voir ci-dessous).

Si une commande est spĂ©cifiĂ©e, elle sera exĂ©cutĂ©e sur la machine distante Ă  la place d’un interprĂ©teur de commande de connexion. commande peut correspondre Ă  une ligne de commande complĂšte ou possĂ©der des arguments additionnels. S’ils sont prĂ©sents, ces arguments seront ajoutĂ©s Ă  la commande, sĂ©parĂ©s par des espaces, avant que cette derniĂšre soit envoyĂ©e Ă  la machine distante pour y ĂȘtre exĂ©cutĂ©e.

Les options sont les suivantes :

-4

Forcer ssh à n’utiliser que des adresses IPv4.

-6

Forcer ssh à n’utiliser que des adresses IPv6.

-A

Active la redirection des connexions depuis un agent d’authentification comme ssh-agent (1). Cette option peut aussi ĂȘtre dĂ©finie machine par machine dans un fichier de configuration.

La redirection d’agent doit ĂȘtre activĂ©e avec prĂ©caution. En effet, les utilisateurs capables de court-circuiter les permissions de fichier sur la machine distante (pour le socket de domaine UNIX de l’agent) peuvent accĂ©der Ă  l’agent local Ă  travers la connexion transfĂ©rĂ©e. MĂȘme si un attaquant ne pourra pas obtenir de clĂ©s depuis l’agent, il pourra tout de mĂȘme effectuer des opĂ©rations sur les clĂ©s qui lui permettront de s’authentifier en utilisant les identitĂ©s chargĂ©es dans l’agent. Une alternative plus sĂ»re consiste Ă  utiliser une machine de saut (voir -J ).

-a

DĂ©sactive la redirection de connexion de l’agent d’authentification.

-B interface_sortie

PrĂ©ciser l’adresse de l’interface interface_sortie avant de tenter une connexion vers la machine distante. Cette option n’est utile que sur les systĂšmes qui possĂšdent plusieurs adresses.

-b adr_sortie

Utiliser l’adresse adr_sortie sur la machine locale comme adresse source de la connexion. Cette option n’est utile que sur les systùmes qui possùdent plusieurs adresses.

-C

Requiert la compression de toutes les donnĂ©es (y compris stdin, stdout, stderr et les donnĂ©es pour les connexions redirigĂ©es X11, TCP et de domaine UNIX). L’algorithme de compression est le mĂȘme que celui utilisĂ© par gzip (1). La compression est souhaitable sur les lignes modem ou autres connexions lentes, mais elle ne fera que ralentir le trafic si elle est activĂ©e sur un rĂ©seau rapide. On peut aussi spĂ©cifier la valeur par dĂ©faut machine par machine dans les fichiers de configuration ; voir l’option Compression dans ssh_config (5).

-c algos_chiffrement

SpĂ©cifie les algorithmes de chiffrement Ă  utiliser pour chiffrer la session. algos_chiffrement est une liste d’algorithmes de chiffrement sĂ©parĂ©s par des virgules et prĂ©sentĂ©s par ordre de prĂ©fĂ©rence. Voir le mot-clĂ© Ciphers dans ssh_config (5) pour plus d’informations.

-D
[
adr_sortie
:] port

SpĂ©cifie une redirection de port local « dynamique » au niveau applicatif. Le fonctionnement consiste Ă  allouer un socket pour Ă©couter le port cĂŽtĂ© local, optionnellement associĂ© Ă  l’adresse adr_sortie indiquĂ©e. Chaque fois qu’une connexion est effectuĂ©e vers ce port, elle est transfĂ©rĂ©e par le canal sĂ©curisĂ© et le protocole applicatif est alors utilisĂ© pour dĂ©terminer vers oĂč se connecter depuis la machine distante. Actuellement, les protocoles SOCKS4 et SOCKS5 sont pris en charge et ssh se comporte comme un serveur SOCKS. Seul le superutilisateur peut rediriger des ports privilĂ©giĂ©s. On peut aussi spĂ©cifier des redirections de port dynamiques dans le fichier de configuration.

On peut spĂ©cifier des adresses IPv6 en les entourant de crochets. Seul le superutilisateur peut rediriger des ports privilĂ©giĂ©s. Par dĂ©faut, le port local est liĂ© en accord avec la dĂ©finition de GatewayPorts . On peut cependant utiliser une adresse adr_sortie explicite pour lier la connexion Ă  une adresse spĂ©cifique. L’adresse adr_sortie de « localhost » indique que le port d’écoute ne pourra ĂȘtre liĂ© que pour un usage local, alors qu’une adresse vide ou « * » indique que le port sera disponible depuis toutes les interfaces.

-E fichier_journal

Ajoute les informations de dĂ©bogage au fichier_journal au lieu de les envoyer sur la sortie d’erreur standard.

-e caractÚre_échappement

SpĂ©cifie le caractĂšre d’échappement pour les sessions avec un pseudo-terminal (pty). Le caractĂšre par dĂ©faut est « ˜ ». Le caractĂšre d’échappement suivi d’un point « . » ferme la connexion ; suivi de ContrĂŽle-Z, il la suspend et suivi de lui-mĂȘme, il envoie le caractĂšre d’échappement une fois. En dĂ©finissant le caractĂšre d’échappement Ă  « none », on dĂ©sactive tout Ă©chappement et on rend la session totalement transparente.

-F fichier_configuration

SpĂ©cifie un autre fichier de configuration par utilisateur. Si on fournit un fichier de configuration dans la ligne de commande, le fichier global ( /etc/ssh/ssh_config ) est ignorĂ©. L’emplacement par dĂ©faut pour le fichier de configuration utilisateur est ˜/.ssh/config . Si cette option est dĂ©finie Ă  « none », aucun fichier de configuration ne sera lu.

-f

Demande Ă  ssh de basculer en arriĂšre-plan juste avant d’exĂ©cuter la commande. Cette option est particuliĂšrement utile si ssh est appelĂ© Ă  demander des mots de passe ou des phrases de passe, alors que l’utilisateur souhaite que cela s’effectue en arriĂšre-plan. Elle implique l’option -n . La mĂ©thode recommandĂ©e pour exĂ©cuter des programmes X11 sur une machine distante pourrait ressembler à : ssh -f machine xterm .

Si l’option de configuration ExitOnForwardFailure est dĂ©finie Ă  « yes », un client dĂ©marrĂ© avec l’option -f attendra que toutes les redirections de port distant soient effectuĂ©es avec succĂšs avant de se placer lui-mĂȘme en arriĂšre-plan. Voir la description de ForkAfterAuthentication dans ssh_config (5) pour les dĂ©tails.

-G

Demande Ă  ssh d’afficher sa configuration aprĂšs Ă©valuation des blocs Host et Match puis de quitter.

-g

Permet Ă  des machines distantes de se connecter Ă  des ports redirigĂ©s locaux. Si elle est utilisĂ©e sur une connexion multiplexĂ©e, cette option doit ĂȘtre spĂ©cifiĂ©e sur le processus maĂźtre.

-I pkcs11

SpĂ©cifie la bibliothĂšque partagĂ©e PKCS#11 que ssh devra utiliser pour communiquer avec un jeton PKCS#11 fournissant des clĂ©s pour l’authentification utilisateur.

-i fichier_identité

SpĂ©cifie un fichier Ă  partir duquel l’identitĂ© (la clĂ© privĂ©e) pour l’authentification de la clĂ© publique est lue. Vous pouvez aussi spĂ©cifier un fichier de clĂ© publique pour utiliser la clĂ© privĂ©e correspondante chargĂ©e dans ssh-agent (1) lorsque le fichier de la clĂ© privĂ©e n’est pas prĂ©sent en local. Les fichiers par dĂ©faut sont ˜/.ssh/id_rsa , ˜/.ssh/id_ecdsa , ˜/.ssh/id_ecdsa_sk , ˜/.ssh/id_ed25519 , et ˜/.ssh/id_ed25519_sk . On peut aussi spĂ©cifier l’emplacement des fichiers d’identitĂ© pour une machine donnĂ©e dans le fichier de configuration. On peut spĂ©cifier plusieurs options -i (et plusieurs identitĂ©s dans les fichiers de configuration). Si aucun certificat n’a Ă©tĂ© explicitement spĂ©cifiĂ© Ă  l’aide de la directive CertificateFile , ssh va tenter de charger les informations de certificat Ă  partir du fichier dont le nom sera obtenu en ajoutant -cert.pub aux noms des fichiers d’identitĂ©.

-J destination

Se connecter Ă  la machine cible en Ă©tablissant tout d’abord une connexion ssh vers la machine de saut indiquĂ©e par destination , puis en effectuant une redirection TCP vers la destination finale depuis la machine de saut. Il est possible de spĂ©cifier plusieurs sauts successifs en les sĂ©parant par des virgules. Il est possible de spĂ©cifier des adresses IPv6 en les entourant de crochets. Cette option est un raccourci pour dĂ©finir une directive de configuration ProxyJump . Notez que les directives de configuration fournies sur la ligne de commande s’appliquent en gĂ©nĂ©ral Ă  la machine de destination et Ă  aucune des machines de saut Ă©ventuellement indiquĂ©es. Pour dĂ©finir des directives de configuration qui s’appliquent aux machines de saut, utilisez le fichier ˜/.ssh/config .

-K

Active l’authentification basĂ©e sur GSSAPI et les transferts (dĂ©lĂ©gations) d’identifiants GSSAPI vers le serveur.

-k

DĂ©sactive les transferts (dĂ©lĂ©gations) d’identifiants GSSAPI vers le serveur.

-L
[
adr_sortie
:] port : machine : port_machine
-L

[
adr_sortie
:] port : socket_distant
-L

socket_local
: machine : port_machine
-L

socket_local
: socket_distant

Indique que les connexions vers le port TCP ou le socket Unix donnĂ© de la machine locale (client) seront transfĂ©rĂ©es vers la machine et le port donnĂ©s ou le socket Unix sur la machine distante. Ce processus fonctionne grĂące Ă  l’allocation d’un socket qui Ă©coute soit un port TCP de la machine locale Ă©ventuellement liĂ© Ă  l’adresse adr_sortie spĂ©cifiĂ©e, soit un socket Unix. DĂšs qu’une connexion est Ă©tablie sur le port local ou le socket, elle est transfĂ©rĂ©e Ă  travers le canal sĂ©curisĂ©, et une connexion est Ă©tablie vers le port_machine de la machine ou le socket Unix socket_distant depuis la machine distante.

Les redirections de port peuvent aussi ĂȘtre dĂ©finies dans le fichier de configuration. Seul le superutilisateur peut transfĂ©rer des ports privilĂ©giĂ©s. Il est possible de spĂ©cifier des adresses IPv6 en les entourant de crochets.

Par dĂ©faut, le port local est liĂ© en accord avec la dĂ©finition de GatewayPorts . On peut cependant indiquer une adresse adr_sortie explicite pour lier la connexion Ă  une adresse spĂ©cifique. L’adresse adr_sortie « localhost » indique que le port local ne peut ĂȘtre liĂ© que pour un usage local, alors qu’une adresse vide ou « * » indique que le port sera disponible sur toutes les interfaces.

-l nom_connexion

Indique le nom d’utilisateur sous lequel se connecter Ă  la machine distante. Il peut aussi ĂȘtre spĂ©cifiĂ© pour une machine donnĂ©e dans le fichier de configuration.

-M

Place le client ssh en mode « master » pour le partage de connexion. SpĂ©cifier plusieurs options -M place le client ssh en mode « master », mais avec demande de confirmation en utilisant ssh-askpass (1) avant toute opĂ©ration qui modifie l’état du multiplexage (par exemple ouvrir une nouvelle session). Voir la description de ControlMaster dans ssh_config (5) pour les dĂ©tails.

-m algos_MAC

Une liste d’algorithmes MAC (message authentication code, code d’authentification de message) sĂ©parĂ©s par des virgules et classĂ©s par ordre de prĂ©fĂ©rence. Voir le mot-clĂ© MACs dans ssh_config (5) pour plus d’informations.

-N

N’exĂ©cute aucune commande distante. UtilisĂ© pour les redirections de ports. Voir la description de SessionType dans ssh_config (5) pour les dĂ©tails.

-n

Redirige l’entrĂ©e standard vers /dev/null (en fait, empĂȘche la lecture depuis l’entrĂ©e standard). À utiliser lorsque ssh s’exĂ©cute en arriĂšre-plan. Cette option peut s’avĂ©rer utile pour exĂ©cuter des programmes X11 sur une machine distante. Par exemple, ssh -n shadows.cs.hut.fi emacs & dĂ©marre emacs sur shadows.cs.hut.fi, et la connexion X11 est transfĂ©rĂ©e automatiquement Ă  travers un canal cryptĂ©. Le programme ssh est basculĂ© en arriĂšre-plan. Ne fonctionne cependant pas si ssh nĂ©cessite un mot de passe ou une phrase de passe ; voir aussi l’option -f . Consulter la description de StdinNull dans ssh_config (5) pour les dĂ©tails.

-O commande_de_contrĂŽle

ContrĂŽler un processus actif maĂźtre de multiplexage de connexion. Lorsque l’option -O est spĂ©cifiĂ©e, l’argument commande_de_contrĂŽle est interprĂ©tĂ© et transmis au processus maĂźtre. Les commandes valables sont : « check » (vĂ©rifie que le processus maĂźtre est en cours d’exĂ©cution), « forward » (redirection sans exĂ©cution de commande), « cancel » (annulation des redirections), « proxy » (connexion Ă  un processus maĂźtre de multiplexage en cours d’exĂ©cution en mode mandataire), « exit » (demande au processus maĂźtre de quitter) et « stop » (demande au processus maĂźtre de ne plus accepter de demandes de multiplexage ultĂ©rieures).

-o option

Cette option permet de spĂ©cifier des options dans le format du fichier de configuration et qui n’ont pas d’équivalent en ligne de commande. Pour plus de dĂ©tails sur les options listĂ©es ci-aprĂšs, ainsi que les valeurs autorisĂ©es, veuillez vous rĂ©fĂ©rer Ă  ssh_config (5).

AddKeysToAgent
AddressFamily
BatchMode
BindAddress
BindInterface
CASignatureAlgorithms
CanonicalDomains
CanonicalizeFallbackLocal
CanonicalizeHostname
CanonicalizeMaxDots
CanonicalizePermittedCNAMEs
CertificateFile
ChannelTimeout
CheckHostIP
Ciphers
ClearAllForwardings
Compression
ConnectTimeout
ConnectionAttempts
ControlMaster
ControlPath
ControlPersist
DynamicForward
EnableEscapeCommandline
EnableSSHKeysign
EscapeChar
ExitOnForwardFailure
FingerprintHash
ForkAfterAuthentication
ForwardAgent
ForwardX11
ForwardX11Timeout
ForwardX11Trusted
GSSAPIAuthentication
GSSAPIKeyExchange
GSSAPIClientIdentity
GSSAPIDelegateCredentials
GSSAPIKexAlgorithms
GSSAPIRenewalForcesRekey
GSSAPIServerIdentity
GSSAPITrustDns
GatewayPorts
GlobalKnownHostsFile
HashKnownHosts
Host
HostKeyAlgorithms
HostKeyAlias
HostbasedAcceptedAlgorithms
HostbasedAuthentication
Hostname
IPQoS
IdentitiesOnly
IdentityAgent
IdentityFile
IgnoreUnknown
Include
KbdInteractiveAuthentication
KbdInteractiveDevices
KexAlgorithms
KnownHostsCommand
LocalCommand
LocalForward
LogLevel
LogVerbose
MACs
NoHostAuthenticationForLocalhost
NumberOfPasswordPrompts
ObscureKeystrokeTiming
PKCS11Provider
PasswordAuthentication
PermitLocalCommand
PermitRemoteOpen
Port
PreferredAuthentications
ProxyCommand
ProxyJump
ProxyUseFdpass
PubkeyAcceptedAlgorithms
PubkeyAuthentication
RekeyLimit
RemoteCommand
RemoteForward
RequestTTY
RequiredRSASize
RevokedHostKeys
SecurityKeyProvider
SendEnv
ServerAliveCountMax
ServerAliveInterval
SessionType
SetEnv
StdinNull
StreamLocalBindMask
StreamLocalBindUnlink
StrictHostKeyChecking
SyslogFacility
TCPKeepAlive
Tag
Tunnel
TunnelDevice
UpdateHostKeys
User
UserKnownHostsFile
VerifyHostKeyDNS
VisualHostKey
XAuthLocation

-P symbole

SpĂ©cifier un nom de symbole (tag) Ă  utiliser pour sĂ©lectionner une configuration dans ssh_config (5). Voir les mots-clĂ©s Tag et Match dans ssh_config (5) pour plus d’informations.

-p port

Le port auquel se connecter sur la machine distante. On peut aussi le spécifier pour une machine donnée dans le fichier de configuration.

-Q option_requĂȘte

RequĂ©rir les algorithmes de chiffrement pris en charge par une des fonctionnalitĂ©s suivantes : cipher (algorithmes symĂ©triques), cipher-auth (algorithmes symĂ©triques qui prennent en charge le chiffrement authentifiĂ©), help (termes de requĂȘte pris en charge Ă  utiliser avec l’option -Q ), mac (codes d’intĂ©gritĂ© de message pris en charge), kex (algorithmes d’échange de clĂ©s), kex-gss (algorithmes d’échange de clĂ©s GSSAPI), key (types de clĂ©), key-ca-sign (algorithmes de signature d’AutoritĂ©s de Certification (CA) valables pour les certificats), key-cert (types de clĂ© de certificat), key-plain (types de clĂ© hors certificats), key-sig (tous les types de clĂ© et algorithmes de signature), protocol-version (versions du protocole SSH prises en charge) et sig (algorithmes de signature pris en charge). Autrement, tout mot-clĂ© de ssh_config (5) ou sshd_config (5) qui prend une liste d’algorithmes peut ĂȘtre utilisĂ© comme alias pour l’option de requĂȘte correspondante.

-q

Mode silencieux. Supprime la plupart des messages d’avertissement et de diagnostic.

-R
[
adr_sortie
:] port : machine : port_machine
-R

[
adr_sortie
:] port : socket_local
-R

socket_distant
: machine : port_machine
-R

socket_distant
: socket_local
-R

[
adr_sortie
:] port

Spécifie que les connexions vers le port TCP ou le socket Unix donné de la machine distante (serveur) seront transférées vers la machine locale.

À cet effet, un socket est allouĂ© qui Ă©coute un port TCP ou un socket Unix sur la machine distante. DĂšs qu’une connexion est Ă©tablie sur ce port ou ce socket Unix, elle est transfĂ©rĂ©e Ă  travers le canal sĂ©curisĂ©, et une connexion est effectuĂ©e depuis la machine locale vers une destination explicite spĂ©cifiĂ©e par le port de la machine ou socket_local , ou, si aucune destination explicite n’a Ă©tĂ© spĂ©cifiĂ©e, ssh se comportera comme un mandataire SOCKS 4/5 et transfĂ©rera les connexions vers les destinations requises par le client SOCKS distant.

On peut aussi spécifier des redirections de port (port forwardings) dans le fichier de configuration. On ne peut transférer des ports privilégiés que si on se connecte en tant que superutilisateur sur la machine distante. Il est possible de spécifier des adresses IPv6 en les entourant de crochets.

Par dĂ©faut, les sockets d’écoute TCP sur le serveur ne peuvent ĂȘtre liĂ©s qu’à l’interface loopback. Pour modifier ce comportement, on peut spĂ©cifier une adresse adr_sortie . Une adresse adr_sortie vide ou l’adresse « * » indique que le socket distant doit Ă©couter toutes les interfaces. SpĂ©cifier une adresse adr_sortie distante ne rĂ©ussira que si l’option GatewayPorts est activĂ©e sur le serveur (voir sshd_config (5)).

Si l’argument port est Ă©gal Ă  0 , le port d’écoute sera allouĂ© dynamiquement sur le serveur et indiquĂ© au client Ă  l’exĂ©cution. Si utilisĂ© en combinaison avec -O forward , le port allouĂ© sera envoyĂ© sur la sortie standard

-S socket_contrĂŽle

Indique l’emplacement d’un socket de contrĂŽle pour le partage de connexion, ou la chaĂźne « none » pour dĂ©sactiver le partage de connexion. Voir les descriptions de ControlPath et ControlMaster dans ssh_config (5) pour les dĂ©tails.

-s

Permet d’invoquer un sous-systĂšme sur la machine distante. Les sous-systĂšmes simplifient l’utilisation de SSH comme transport sĂ©curisĂ© pour d’autres applications (par exemple sftp (1)). Le sous-systĂšme est spĂ©cifiĂ© Ă  l’aide de la commande distante. Voir la description de SessionType dans ssh_config (5) pour les dĂ©tails.

-T

DĂ©sactive l’allocation d’un pseudo-terminal.

-t

Force l’allocation d’un pseudo-terminal. UtilisĂ© pour exĂ©cuter des programmes en mode Ă©cran sur la machine distante, ce qui peut s’avĂ©rer fort utile, par exemple, pour les applications qui implĂ©mentent des services de menu. En ajoutant des options -t , on force l’allocation de terminaux, mĂȘme si ssh n’a pas de terminal local.

-V

Affiche le numéro de version et quitte.

-v

Mode prolixe. Avec cette option, ssh affiche des messages de dĂ©bogage sur les actions qu’il effectue. Fort utile pour dĂ©boguer les problĂšmes de connexion, d’authentification ou de configuration. Ajouter des options -v augmente la prolixitĂ©. Le maximum est de 3.

-W machine : port

Demande que les entrĂ©e et sortie standards sur le client soient transfĂ©rĂ©es vers le port de machine par le canal sĂ©curisĂ©. Implique -N , -T , ExitOnForwardFailure et ClearAllForwardings , bien que ces options puissent ĂȘtre surchargĂ©es dans le fichier de configuration ou en utilisant l’option de ligne de commande -o .

-w
tunnel_local
[: tunnel_distant ]

Demande la redirection par dispositif de tunnel avec les dispositifs tun (4) spécifiés entre le client ( tunnel_local ) et le serveur ( tunnel_distant ).

Les dispositifs peuvent ĂȘtre spĂ©cifiĂ©s par un ID numĂ©rique ou le mot-clĂ© « any », auquel cas c’est le premier dispositif de tunnel disponible qui sera utilisĂ©. La valeur par dĂ©faut de tunnel_distant est « any » au cas oĂč il ne serait pas spĂ©cifiĂ©. Voir aussi les directives Tunnel et TunnelDevice dans ssh_config (5).

Si la directive Tunnel n’est pas dĂ©finie, elle prendra pour valeur le mode de tunnel par dĂ©faut, Ă  savoir « point-to-point ». Si un autre mode de redirection Tunnel est souhaitĂ©, il devra ĂȘtre spĂ©cifiĂ© avant -w .

-X

Active la redirection X11. On peut aussi le spécifier pour une machine donnée dans le fichier de configuration.

La redirection X11 doit ĂȘtre activĂ©e avec prĂ©caution. En effet, les utilisateurs capables de contourner les permissions des fichiers sur la machine distante (pour accĂ©der Ă  la base de donnĂ©es d’accrĂ©ditation de X) peuvent accĂ©der au « display » X11 local par l’intermĂ©diaire de la connexion transfĂ©rĂ©e. Un attaquant pourrait alors effectuer des opĂ©rations telles que l’enregistrement de la frappe.

C’est pour cette raison que par dĂ©faut, la redirection X11 est assujettie aux restrictions de l’extension X11 SECURITY. Veuillez vous rĂ©fĂ©rer Ă  l’option -Y de ssh et Ă  la directive ForwardX11Trusted dans ssh_config (5) pour plus d’informations.

(SpĂ©cifique Ă  Debian : par dĂ©faut, les redirections X11 ne sont pas soumises aux restrictions de l’extension SECURITY de X11, car actuellement de trop nombreux programmes plantent dans ce mode. Pour restaurer le comportement amont, vous pouvez dĂ©finir l’option ForwardX11Trusted Ă  « no ». Cette situation Ă©voluera dans le futur si des amĂ©liorations sont apportĂ©es cĂŽtĂ© client).

-x

Désactive la redirection X11.

-Y

Active une redirection X11 de confiance. Les redirections X11 de confiance ne sont pas assujetties aux contrîles de l’extension X11 SECURITY.

(SpĂ©cifique Ă  Debian : dans la configuration par dĂ©faut, cette option est Ă©quivalente Ă  -X puisque ForwardX11Trusted a pour valeur par dĂ©faut « yes », comme indiquĂ© ci-dessus. Pour restaurer le comportement amont, vous pouvez dĂ©finir l’option ForwardX11Trusted Ă  « no ». Cette situation Ă©voluera dans le futur si des amĂ©liorations sont apportĂ©es cĂŽtĂ© client).

-y

Envoyer les informations de journalisation en utilisant le module systÚme syslog (3). Par défaut, ces informations sont envoyées à stderr.

ssh peut aussi obtenir les donnĂ©es de configuration depuis un fichier de configuration d’utilisateur particulier et depuis un fichier de configuration global. Le format du fichier et les options de configuration sont dĂ©crits dans ssh_config (5).

AUTHENTIFICATION

Le client SSH OpenSSH prend en charge la version 2 du protocole SSH.

Pour l’authentification, les mĂ©thodes disponibles sont : l’authentification basĂ©e sur GSSAPI, l’authentification basĂ©e sur la machine, l’authentification par clĂ© publique, l’authentification par interaction au clavier (keyboard-interactive) et l’authentification par mot de passe. Les mĂ©thodes d’authentification sont essayĂ©es selon l’ordre dans lequel elles sont indiquĂ©es ci-dessus, mais cet ordre par dĂ©faut peut ĂȘtre modifiĂ© Ă  l’aide de la directive PreferredAuthentications .

L’authentification basĂ©e sur la machine fonctionne comme suit : si la machine sur laquelle l’utilisateur est connectĂ© est enregistrĂ©e dans /etc/hosts.equiv ou /etc/ssh/shosts.equiv sur la machine distante, si l’utilisateur est autre que le superutilisateur et si les noms d’utilisateur sont les mĂȘmes des deux cĂŽtĂ©s, ou si le fichier ˜/.rhosts ou ˜/.shosts existent dans le rĂ©pertoire personnel de l’utilisateur sur la machine distante et comporte une ligne contenant le nom de la machine cliente et le nom de l’utilisateur sur cette machine, l’utilisateur est autorisĂ© Ă  se connecter. De plus, le serveur doit pouvoir vĂ©rifier la clĂ© de la machine du client (voir la description de /etc/ssh/ssh_known_hosts et ˜/.ssh/known_hosts ci-dessous) pour que la connexion soit autorisĂ©e. Cette mĂ©thode d’identification bouche les trous de sĂ©curitĂ© dus aux usurpations d’adresse IP, de DNS et de routage. [Note Ă  l’attention de l’administrateur : /etc/hosts.equiv , ˜/.rhosts et le protocole rlogin/rsh dans sa globalitĂ© sont intrinsĂšquement non sĂ©curisĂ©s et doivent ĂȘtre dĂ©sactivĂ©s si vous attachez de l’importance Ă  la sĂ©curitĂ©.]

L’authentification par clĂ© publique fonctionne comme suit : son principe est basĂ© sur la cryptographie Ă  clĂ© publique et utilise des systĂšmes cryptographiques oĂč le chiffrement et le dĂ©chiffrement utilisent des clĂ©s sĂ©parĂ©es et avec lesquels il est impossible de dĂ©terminer la clĂ© de dĂ©chiffrement Ă  partir de la clĂ© de chiffrement. L’idĂ©e de base est la suivante : chaque utilisateur crĂ©e une paire de clĂ©s publique/privĂ©e Ă  des fins d’authentification ; le serveur connaĂźt la clĂ© publique, mais seul l’utilisateur connaĂźt la clĂ© privĂ©e. ssh implĂ©mente automatiquement le protocole d’authentification par clĂ© publique en utilisant un des algorithmes ECDSA, Ed25519 ou RSA.

Le fichier ˜/.ssh/authorized_keys liste les clĂ©s publiques qui sont autorisĂ©es Ă  se connecter. Lorsque l’utilisateur se connecte, le programme ssh indique au serveur quelle paire de clĂ©s il souhaiterait utiliser pour l’authentification. Le client prouve qu’il a accĂšs Ă  la clĂ© privĂ©e et le serveur vĂ©rifie si la clĂ© publique correspondante est autorisĂ©e Ă  accepter le compte.

Le serveur pourra Ă©ventuellement indiquer au client les erreurs qui ont fait Ă©chouer l’authentification par clĂ© publique lorsque l’authentification a rĂ©ussi en utilisant une autre mĂ©thode. Ces erreurs peuvent ĂȘtre vues en augmentant le niveau de journalisation LogLevel Ă  DEBUG ou plus (par exemple en utilisant l’option -v ).

L’utilisateur crĂ©e sa paire de clĂ©s Ă  l’aide de ssh-keygen (1). Ce programme enregistre la clĂ© privĂ©e dans ˜/.ssh/id_ecdsa (ECDSA), ˜/.ssh/id_ecdsa_sk (clĂ© ECDSA hĂ©bergĂ©e par un authentificateur), ˜/.ssh/id_ed25519 (Ed25519), ˜/.ssh/id_ed25519_sk (clĂ© Ed25519 hĂ©bergĂ©e par un authentificateur) ou ˜/.ssh/id_rsa (RSA) et la clĂ© publique dans ˜/.ssh/id_ecdsa.pub (ECDSA), ˜/.ssh/id_ecdsa_sk.pub (clĂ© ECDSA hĂ©bergĂ©e par un authentificateur), ˜/.ssh/id_ed25519.pub (Ed25519), ˜/.ssh/id_ed25519_sk.pub (clĂ© Ed25519 hĂ©bergĂ©e par un authentificateur) ou ˜/.ssh/id_rsa.pub (RSA) dans le rĂ©pertoire personnel de l’utilisateur. L’utilisateur doit alors copier la clĂ© publique dans ˜/.ssh/authorized_keys dans son rĂ©pertoire personnel sur la machine distante. Le fichier authorized_keys est Ă©quivalent au fichier ˜/.rhosts traditionnel et il comporte une clĂ© par ligne, mĂȘme si ces derniĂšres peuvent ĂȘtre trĂšs longues. Cela fait, l’utilisateur peut se connecter sans avoir Ă  prĂ©senter de mot de passe.

L’authentification par certificat est une variante de l’authentification par clĂ© publique : Ă  la place de la paire de clĂ©s publique/privĂ©e, elle utilise des certificats signĂ©s, ce qui a pour avantage de ne nĂ©cessiter qu’une seule autoritĂ© de certification de confiance au lieu de nombreuses paires de clĂ©s publiques/privĂ©es. Voir la section CERTIFICATS de ssh-keygen (1) pour plus d’informations.

La meilleure mĂ©thode pour mettre en Ɠuvre l’authentification par clĂ© publique ou par certificat consiste Ă  utiliser un agent d’authentification. Voir ssh-agent (1) et Ă©ventuellement la directive AddKeysToAgent dans ssh_config (5) pour plus d’informations.

L’authentification par interaction au clavier (keyboard-interactive) fonctionne comme suit : le serveur envoie une "question" arbitraire sous forme de texte et attend une rĂ©ponse, Ă©ventuellement plusieurs fois. On peut citer comme exemples d’authentification par interaction au clavier l’authentification BSD (voir login.conf (5)) et l’authentification PAM (certains systĂšmes non-OpenBSD).

En fin de compte, si les autres mĂ©thodes d’authentification Ă©chouent, ssh demandera un mot de passe Ă  l’utilisateur. Ce mot de passe sera alors envoyĂ© Ă  la machine distante pour vĂ©rification, et comme toutes les communications sont chiffrĂ©es, un individu qui Ă©couterait le rĂ©seau ne pourra pas le voir.

ssh entretient et vĂ©rifie automatiquement une base de donnĂ©es contenant l’identification pour toutes les machines avec lesquelles il a dĂ©jĂ  Ă©tĂ© utilisĂ©. Les clĂ©s d’hĂŽte sont stockĂ©es dans ˜/.ssh/known_hosts dans le rĂ©pertoire personnel de l’utilisateur. De plus, une vĂ©rification des machines connues est automatiquement effectuĂ©e dans le fichier /etc/ssh/ssh_known_hosts . Toute nouvelle machine est ajoutĂ©e au fichier de l’utilisateur. Si l’identification d’une machine est modifiĂ©e, ssh Ă©met un avertissement et dĂ©sactive l’authentification par mot de passe pour empĂȘcher toute usurpation de serveur ou attaque de type « homme du milieu » qui pourrait sans cela ĂȘtre utilisĂ©e pour contourner le chiffrement. L’option StrictHostKeyChecking permet de contrĂŽler les connexions aux machines dont la clĂ© d’hĂŽte est inconnue ou a Ă©tĂ© modifiĂ©e.

Lorsque l’identitĂ© de l’utilisateur a Ă©tĂ© acceptĂ©e par le serveur, soit une commande a Ă©tĂ© spĂ©cifiĂ©e et le serveur l’exĂ©cute dans le cadre d’une session non interactive, soit aucune commande n’a Ă©tĂ© spĂ©cifiĂ©e et le serveur connecte l’utilisateur Ă  la machine et lui ouvre un interprĂ©teur de commande normal dans le cadre d’une session interactive. Toutes les communications avec la commande ou l’interprĂ©teur distants sont automatiquement chiffrĂ©es.

Si une session interactive est requise, par dĂ©faut, ssh ne demandera qu’un pseudo-terminal (pty) pour les sessions interactives lorsque le client en possĂšde un. Les options -T et -t permettent d’outrepasser ce comportement.

Si un pseudo-terminal a Ă©tĂ© allouĂ©, l’utilisateur peut utiliser les caractĂšres d’échappement notĂ©s ci-dessous.

Si aucun pseudo-terminal n’a Ă©tĂ© allouĂ©, la session est transparente et permet de transmettre des donnĂ©es binaires de maniĂšre fiable. Sur la plupart des systĂšmes, dĂ©finir le caractĂšre d’échappement Ă  « none » rendra aussi la session transparente, mĂȘme si un tty est utilisĂ©.

La session est fermĂ©e lorsque la commande ou l’interprĂ©teur de commande sur la machine distante quitte et si toutes les connexions X11 et TCP ont Ă©tĂ© fermĂ©es.

CARACTÈRES D’ÉCHAPPEMENT

Lorsqu’un pseudo-terminal a Ă©tĂ© demandĂ©, ssh prend en charge un certain nombre de fonctions Ă  l’aide de caractĂšres d’échappement.

Pour envoyer un simple caractĂšre tilde, on peut utiliser ˜˜ ou faire suivre le tilde d’un caractĂšre autre que ceux dĂ©crits ci-dessous. Le caractĂšre d’échappement doit toujours ĂȘtre prĂ©cĂ©dĂ© d’un caractĂšre nouvelle ligne pour ĂȘtre considĂ©rĂ© comme spĂ©cial. Il peut ĂȘtre changĂ© en ligne de commande Ă  l’aide de l’option -e ou dans les fichiers de configuration Ă  l’aide de la directive EscapeChar .

Les Ă©chappements pris en charge (en comptant l’échappement par dĂ©faut « ˜ ») sont :

˜.

Déconnecter.

˜ˆZ

ssh en arriĂšre-plan.

˜#

Lister les connexions transmises.

˜&

ssh en arriĂšre-plan Ă  la dĂ©connexion lorsqu’on attend la fin d’une connexion redirigĂ©e ou d’une session X11.

˜?

Afficher une liste des caractĂšres d’échappement.

˜B

Envoyer un BREAK au systĂšme distant (pertinent seulement si la machine distante le prend en charge).

˜C

Ouvrir une ligne de commande. Actuellement, cette action permet d’ajouter des redirections de port en utilisant les options -L , -R et -D (voir ci-dessus). Elle permet aussi d’annuler des redirections de port existants à l’aide de -KL [

adr_sortie : ] port pour la machine locale, -KR [
adr_sortie
: ] port pour la machine distante et -KD [
adr_sortie
: ] port pour les redirections de port dynamiques. ! commande permet Ă  l’utilisateur d’exĂ©cuter une commande locale si la directive PermitLocalCommand est dĂ©finie dans ssh_config (5). L’option -h permet d’afficher une aide succincte.

˜R

Demander une nouvelle saisie des informations de connexion (pertinent seulement si la machine distante le prend en charge).

˜V

Diminue la prolixité ( LogLevel ) quand les erreurs sont affichées sur stderr.

˜v

Augmente la prolixitĂ© ( LogLevel ) quand les erreurs sont affichĂ©es sur la sortie d’erreur.

TRANSFERT TCP

Il est possible de spĂ©cifier la redirection de connexions TCP arbitraires sur un canal sĂ©curisĂ© soit en ligne de commande, soit dans un fichier de configuration. La connexion sĂ©curisĂ©e Ă  un serveur de messagerie est un exemple d’application de la redirection TCP ; passer par des pare-feux en est un autre.

Dans l’exemple ci-dessous, on cherche Ă  chiffrer les communications pour un client IRC, mĂȘme si le serveur IRC auquel il se connecte ne prend pas directement en charge les communications chiffrĂ©es. Le fonctionnement est le suivant : l’utilisateur se connecte Ă  la machine distante Ă  l’aide de ssh en spĂ©cifiant le port Ă  utiliser pour transfĂ©rer la connexion. Cela fait, il est possible de dĂ©marrer le programme en local, et ssh chiffrera et transfĂ©rera la connexion vers le serveur distant.

L’exemple suivant fait passer par un tunnel une session IRC depuis le client vers un serveur IRC Ă  « server.example.com » en rejoignant le canal « #users », avec le pseudo « pinky », en utilisant le port IRC standard 6667 :

$ ssh -f -L 6667:localhost:6667 server.example.com sleep 10
$ irc -c ’#users’ pinky IRC/127.0.0.1

L’option -f fait passer ssh en arriĂšre-plan et la commande distante « sleep 10 » est spĂ©cifiĂ©e pour accorder un certain temps (10 secondes dans l’exemple) avant de dĂ©marrer le programme qui est sur le point d’utiliser le tunnel. Si aucune connexion n’est effectuĂ©e dans ce laps de temps, ssh quittera.

TRANSFERT X11

Si la variable ForwardX11 est dĂ©finie Ă  « yes » (ou voir la description des options -X , -x et -Y ci-dessus) et si l’utilisateur utilise X11 (la variable d’environnement DISPLAY est dĂ©finie), la connexion au « display » X11 est automatiquement transfĂ©rĂ©e Ă  la machine distante de façon que tout programme X11 dĂ©marrĂ© depuis l’interprĂ©teur de commande (ou Ă  l’aide d’une commande) passera par le canal chiffrĂ©, et la connexion au vĂ©ritable serveur X sera Ă©tablie depuis la machine locale. L’utilisateur ne doit pas dĂ©finir manuellement DISPLAY. La redirection des connexions X11 peut ĂȘtre configurĂ©e en ligne de commande ou dans les fichiers de configuration.

Comme ssh crée un serveur X « mandataire » sur la machine serveur pour transférer les connexions sur le canal chiffré, il est normal que la valeur de DISPLAY définie par ssh pointe vers la machine serveur, mais avec un numéro de « display » supérieur à zéro.

ssh va aussi dĂ©finir automatiquement les donnĂ©es Xauthority sur la machine serveur. À cet effet, il va gĂ©nĂ©rer un cookie d’autorisation alĂ©atoire, le stocker dans Xauthority sur le serveur et vĂ©rifier que toute connexion transfĂ©rĂ©e transporte bien ce cookie et le remplace par le vĂ©ritable cookie lorsque la connexion est ouverte. Le vĂ©ritable cookie d’authentification n’est jamais envoyĂ© Ă  la machine serveur (et aucun cookie n’est envoyĂ© en clair).

Si la variable ForwardAgent est dĂ©finie Ă  « yes » (ou voir la description des options -A et -a ci-aprĂšs) et si l’utilisateur utilise un agent d’authentification, la connexion Ă  l’agent est transfĂ©rĂ©e automatiquement vers la machine distante.

VÉRIFIER LES CLÉS D’HÔTE

Lorsqu’il se connecte Ă  un serveur pour la premiĂšre fois, une empreinte de la clĂ© publique du serveur est prĂ©sentĂ©e Ă  l’utilisateur (Ă  moins que l’option StrictHostKeyChecking n’ait Ă©tĂ© dĂ©sactivĂ©e). Les empreintes peuvent ĂȘtre dĂ©terminĂ©es en utilisant ssh-keygen (1)  :

$ ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key

Si l’empreinte est dĂ©jĂ  connue, elle peut ĂȘtre vĂ©rifiĂ©e et la clĂ© acceptĂ©e ou rejetĂ©e. Si les empreintes traditionnelles (MD5) sont les seules disponibles pour le serveur, l’option -E de ssh-keygen (1) permet de dĂ©grader l’algorithme d’empreinte pour qu’il convienne.

Comme il est difficile de comparer les clĂ©s d’hĂŽte en regardant simplement les chaĂźnes d’empreinte, la comparaison visuelle des clĂ©s d’hĂŽte est aussi prise en charge en utilisant random art . En dĂ©finissant l’option VisualHostKey Ă  « yes », un petit graphisme ASCII est affichĂ© Ă  chaque connexion Ă  un serveur, et cela que la session elle-mĂȘme soit interactive ou non. En mĂ©morisant le motif que produit un serveur connu, un utilisateur peut aisĂ©ment dĂ©tecter que la clĂ© d’hĂŽte a changĂ© si un motif totalement diffĂ©rent est affichĂ©. Comme ces motifs ne sont pas dĂ©pourvus d’ambiguĂŻtĂ©, un motif qui paraĂźtra identique au motif mĂ©morisĂ© ne constituera cependant qu’une bonne probabilitĂ© pour que la clĂ© d’hĂŽte soit la mĂȘme, non une preuve irrĂ©futable.

La ligne de commande suivante permet d’obtenir une liste des empreintes et de leurs motifs alĂ©atoires pour toutes les machines connues :

$ ssh-keygen -lv -f ˜/.ssh/known_hosts

Si l’empreinte n’est pas connue, il existe une autre mĂ©thode de vĂ©rification : les empreintes SSH vĂ©rifiĂ©es par DNS. Un enregistrement ressource (RR), SSHFP, est ajoutĂ© Ă  un fichier de zone et le client qui se connecte est alors en mesure de comparer l’empreinte avec celle de la clĂ© prĂ©sentĂ©e.

Dans cet exemple, un client se connecte au serveur « host.example.com ». L’enregistrement ressource SSHFP doit avoir Ă©tĂ© ajoutĂ© au fichier de zone pour host.example.com :

$ ssh-keygen -r host.example.com.

Les lignes en sortie devront ĂȘtre ajoutĂ©es au fichier de zone. Pour vĂ©rifier si la zone rĂ©pond aux demandes d’empreinte :

$ dig -t SSHFP host.example.com

Finalement, le client se connecte :

$ ssh -o "VerifyHostKeyDNS ask" host.example.com
[...]
Matching host key fingerprint found in DNS.
Are you sure you want to continue connecting (yes/no)?

Voir l’option VerifyHostKeyDNS dans ssh_config (5) pour plus d’informations.

VPN BASÉ SUR SSH

ssh prend en charge les tunnels par VPN (RĂ©seau PrivĂ© Virtuel) Ă  l’aide du pseudo-pĂ©riphĂ©rique rĂ©seau tun (4) qui permet de relier deux rĂ©seaux de maniĂšre sĂ©curisĂ©e. L’option de configuration PermitTunnel de sshd_config (5) permet de contrĂŽler la prise en charge par le serveur de cette fonctionnalitĂ© et Ă  quel niveau (trafic de couche 2 ou 3).

Dans l’exemple suivant, le rĂ©seau client 10.0.50.0/24 est reliĂ© au rĂ©seau distant 10.0.99.0/24 en utilisant une connexion point-Ă -point de 10.1.1.1 Ă  10.1.1.2, Ă  condition que le serveur SSH qui s’exĂ©cute sur la passerelle (d’adresse 192.168.1.15) vers le rĂ©seau distant le permette.

Sur le client :

# ssh -f -w 0:1 192.168.1.15 true
# ifconfig tun0 10.1.1.1 10.1.1.2 netmask 255.255.255.252
# route add 10.0.99.0/24 10.1.1.2

Sur le serveur :

# ifconfig tun1 10.1.1.2 10.1.1.1 netmask 255.255.255.252
# route add 10.0.50.0/24 10.1.1.1

L’accĂšs du client peut ĂȘtre configurĂ© plus finement Ă  l’aide du fichier /root/.ssh/authorized_keys (voir plus loin) et de l’option de serveur PermitRootLogin . L’entrĂ©e suivante permet des connexions sur le dispositif tun (4) numĂ©ro 1 depuis l’utilisateur « jane » et sur le dispositif tun de numĂ©ro 2 depuis l’utilisateur « john » si PermitRootLogin est dĂ©finie Ă  « forced-commands-only » :

tunnel="1",command="sh /etc/netstart tun1" ssh-rsa ... jane
tunnel="2",command="sh /etc/netstart tun2" ssh-rsa ... john

Une configuration basĂ©e sur SSH impliquant une surcharge consĂ©quente, elle est plus adaptĂ©e aux configurations temporaires comme les VPN sans fil. Pour des VPN plus persistants, il est prĂ©fĂ©rable d’utiliser des outils comme ipsecctl (8) ou isakmpd (8).

ENVIRONNEMENT

Normalement, ssh va dĂ©finir les variables d’environnement suivantes :

DISPLAY

La variable DISPLAY indique l’emplacement du serveur X11. Elle est automatiquement dĂ©finie par ssh Ă  une valeur de la forme « nom_machine:n » oĂč « nom_machine » indique la machine sur laquelle l’interprĂ©teur de commande s’exĂ©cute, et oĂč « n » est un entier ≄ 1. ssh utilise cette valeur spĂ©ciale pour transfĂ©rer les connexions X11 sur le canal sĂ©curisĂ©. Normalement, l’utilisateur ne doit pas dĂ©finir explicitement DISPLAY, car la connexion ne serait alors plus sĂ©curisĂ©e (et l’utilisateur devrait copier manuellement tout cookie d’autorisation requis).

HOME

DĂ©finie au chemin du rĂ©pertoire personnel de l’utilisateur.

LOGNAME

Synonyme de USER  ; définie à des fins de compatibilité avec les systÚmes qui utilisent cette variable.

MAIL

DĂ©finie au chemin de la boĂźte aux lettres de l’utilisateur.

PATH

Définie à la valeur par défaut de PATH spécifiée lors de la compilation de .

SSH_ASKPASS

Si ssh nĂ©cessite une phrase de passe, il la lit depuis le terminal en cours s’il est exĂ©cutĂ© depuis un terminal. Si ssh n’est pas associĂ© Ă  un terminal, alors que les variables d’environnement DISPLAY et SSH_ASKPASS sont dĂ©finies, il exĂ©cute le programme spĂ©cifiĂ© dans SSH_ASKPASS et ouvre une fenĂȘtre X11 pour lire la phrase de passe, ce qui s’avĂšre particuliĂšrement utile lors d’un appel de ssh depuis .xsession ou un script Ă©quivalent (notez que sur certaines machines, il peut ĂȘtre nĂ©cessaire de rediriger l’entrĂ©e depuis /dev/null pour que cela fonctionne).

SSH_ASKPASS_REQUIRE

Permet un contrĂŽle plus fin de l’utilisation d’un programme de demande de mot de passe. Si cette variable est dĂ©finie Ă  « never », ssh n’essaiera jamais d’en utiliser un. Si elle est dĂ©finie Ă  « prefer », ssh prĂ©fĂ©rera l’utilisation du programme de demande de mot de passe Ă  celle du TTY si un mot de passe est requis. Enfin, si elle est dĂ©finie Ă  « force », le programme de demande de mot de passe sera utilisĂ© pour toute saisie de phrase de passe, et cela que la variable DISPLAY soit dĂ©finie ou non.

SSH_AUTH_SOCK

Identifie le chemin du socket de domaine UNIX utilisĂ© pour communiquer avec l’agent.

SSH_CONNECTION

Identifie les deux bouts de la connexion (le client et le serveur). La variable contient quatre valeurs sĂ©parĂ©es par des espaces : l’adresse IP du client, le numĂ©ro de port du client, l’adresse IP du serveur et le numĂ©ro de port du serveur.

SSH_ORIGINAL_COMMAND

Cette variable contient la ligne de commande originelle si une commande forcĂ©e est exĂ©cutĂ©e. On peut l’utiliser pour extraire les arguments originels.

SSH_TTY

DĂ©finie au nom du terminal tty (chemin du fichier de pĂ©riphĂ©rique) associĂ© Ă  l’interprĂ©teur de commande ou Ă  la commande en cours. Si la session en cours n’a pas de terminal, la variable n’est pas dĂ©finie.

SSH_TUNNEL

Éventuellement dĂ©finie par sshd (8) pour contenir les noms d’interface assignĂ©s si le client a demandĂ© une redirection de tunnel.

SSH_USER_AUTH

Éventuellement dĂ©finie par sshd (8), cette variable peut contenir le chemin d’un fichier qui contient la liste des mĂ©thodes d’authentification qui ont Ă©tĂ© utilisĂ©es avec succĂšs lors de l’établissement de la connexion, ainsi que toute clĂ© publique qui a Ă©tĂ© utilisĂ©e.

TZ

Cette variable indique le fuseau horaire actuel si elle Ă©tait dĂ©finie au dĂ©marrage du dĂ©mon. (c’est-Ă -dire que le dĂ©mon transmet la valeur aux nouvelles connexions).

USER

DĂ©finie au nom de l’utilisateur qui se connecte.

En outre, ssh lit le fichier ˜/.ssh/environment et ajoute des lignes au format « NOM_VAR=valeur » Ă  l’environnement, si le fichier existe, et si les utilisateurs sont autorisĂ©s Ă  modifier leur environnement. Pour plus d’informations, voir l’option PermitUserEnvironment dans sshd_config (5).

FICHIERS
˜/.rhosts

Ce fichier est utilisĂ© dans le cadre de l’authentification basĂ©e sur la machine (voir plus haut). Sur certaines machines, ce fichier devra Ă©ventuellement ĂȘtre lisible par tout le monde si le rĂ©pertoire personnel de l’utilisateur est sur une partition NFS, car sshd (8) le lit en tant que superutilisateur. En outre, ce fichier doit ĂȘtre la propriĂ©tĂ© de l’utilisateur et ne doit ĂȘtre accessible en Ă©criture pour personne d’autre. Les permissions recommandĂ©es sur la plupart des machines sont lecture/Ă©criture pour l’utilisateur et aucun accĂšs pour les autres.

˜/.shosts

Ce fichier est utilisĂ© exactement de la mĂȘme façon que .rhosts , mais il permet l’authentification basĂ©e sur la machine sans autoriser les connexions avec rlogin/rsh .

˜/.ssh/

Ce rĂ©pertoire correspond Ă  l’emplacement par dĂ©faut de toutes les informations de configuration et d’authentification spĂ©cifiques Ă  l’utilisateur. Il n’est globalement pas nĂ©cessaire de garder secret l’ensemble du contenu de ce rĂ©pertoire, mais les permissions recommandĂ©es sont lecture/Ă©criture/exĂ©cution pour l’utilisateur et aucun accĂšs pour les autres.

˜/.ssh/authorized_keys

Ce fichier Ă©numĂšre les clĂ©s publiques (ECDSA, Ed25519, RSA) qui peuvent ĂȘtre utilisĂ©es pour se connecter sous l’identitĂ© de cet utilisateur. Le format de ce fichier est dĂ©crit dans la page de manuel de sshd (8). Le contenu de ce fichier n’est pas hautement sensible, mais les permissions recommandĂ©es sont lecture/Ă©criture pour l’utilisateur et aucun accĂšs pour les autres.

˜/.ssh/config

C’est le fichier de configuration spĂ©cifique Ă  l’utilisateur. Le format du fichier et les options de configuration sont dĂ©crits dans ssh_config (5). Comme il y a risque d’intrusion, ce fichier doit avoir des permissions strictes : lecture/Ă©criture pour l’utilisateur et pas d’accĂšs en Ă©criture pour les autres. Il peut ĂȘtre accessible en Ă©criture pour le groupe si ce dernier ne contient que l’utilisateur.

˜/.ssh/environment

Ce fichier contient des dĂ©finitions de variables d’environnement additionnelles ; voir “ENVIRONNEMENT” ci-dessus.

˜/.ssh/id_ecdsa
˜/.ssh/id_ecdsa_sk
˜/.ssh/id_ed25519
˜/.ssh/id_ed25519_sk
˜/.ssh/id_rsa

Ces fichiers contiennent la clĂ© privĂ©e pour l’authentification. Ils contiennent des donnĂ©es sensibles et doivent ĂȘtre lisibles par l’utilisateur mais inaccessibles pour les autres (lecture/Ă©criture/exĂ©cution). ssh ignorera tout simplement un fichier de clĂ© privĂ©e s’il est accessible pour les autres. Il est possible de spĂ©cifier une phrase de passe lors de la gĂ©nĂ©ration de la clĂ© qui sera utilisĂ©e pour chiffrer la partie sensible de ces fichiers en utilisant AES-128.

˜/.ssh/id_ecdsa.pub
˜/.ssh/id_ecdsa_sk.pub
˜/.ssh/id_ed25519.pub
˜/.ssh/id_ed25519_sk.pub
˜/.ssh/id_rsa.pub

Ces fichiers contiennent la clĂ© publique pour l’authentification. Ils ne contiennent pas de donnĂ©es sensibles et peuvent (mais cela n’est pas nĂ©cessaire) ĂȘtre lisibles par tout le monde.

˜/.ssh/known_hosts

Ce fichier contient une liste des clĂ©s d’hĂŽte pour toutes les machines auxquelles l’utilisateur s’est connectĂ© et qui ne sont pas dĂ©jĂ  prĂ©sentes dans la liste des clĂ©s d’hĂŽte connues de tout le systĂšme. Voir sshd (8) pour plus de dĂ©tails Ă  propos du format de ce fichier.

˜/.ssh/rc

Les commandes que contient ce fichier sont exĂ©cutĂ©es par ssh lorsque l’utilisateur se connecte, juste avant le lancement de l’interprĂ©teur de commande (ou la commande) de l’utilisateur. Voir la page de manuel de sshd (8) pour plus d’informations.

/etc/hosts.equiv

Ce fichier est utilisĂ© dans le cadre de l’authentification basĂ©e sur la machine (voir plus haut). Il ne doit ĂȘtre accessible en Ă©criture que pour le superutilisateur.

/etc/ssh/shosts.equiv

Ce fichier est utilisĂ© exactement de la mĂȘme maniĂšre que hosts.equiv , mais il permet l’authentification basĂ©e sur la machine sans autoriser les connexions avec rlogin/rsh .

/etc/ssh/ssh_config

C’est le fichier de configuration global du systĂšme. Le format du fichier et les options de configuration sont dĂ©crits dans ssh_config (5).

/etc/ssh/ssh_host_ecdsa_key
/etc/ssh/ssh_host_ed25519_key
/etc/ssh/ssh_host_rsa_key

Ces fichiers contiennent les parties privĂ©es des clĂ©s d’hĂŽte et sont utilisĂ©s dans le cadre de l’authentification basĂ©e sur la machine.

/etc/ssh/ssh_known_hosts

Ce fichier contient la liste des clĂ©s d’hĂŽte connues globale Ă  tout le systĂšme. Il doit ĂȘtre prĂ©parĂ© par l’administrateur systĂšme de façon Ă  contenir les clĂ©s d’hĂŽte publiques de toutes les machines de l’organisation. Il doit ĂȘtre accessible pour tout le monde. Voir sshd (8) pour plus de dĂ©tails Ă  propos du format de ce fichier.

/etc/ssh/sshrc

Les commandes que contient ce fichier sont exĂ©cutĂ©es par ssh lorsque l’utilisateur se connecte, juste avant le lancement de l’interprĂ©teur de commande (ou la commande) de l’utilisateur. Voir la page de manuel de sshd (8) pour plus d’informations.

CODE DE RETOUR

ssh quitte avec le code de retour de la commande distante ou 255 si une erreur est survenue

VOIR AUSSI

scp (1), sftp (1), ssh-add (1), ssh-agent (1), ssh-argv0 (1), ssh-keygen (1), ssh-keyscan (1), tun (4), ssh_config (5), ssh-keysign (8), sshd (8)

STANDARDS
S. Lehtinen et C. Lonvick

,

The Secure Shell (SSH) Protocol Assigned Numbers ,
RFC 4250 ,
janvier 2006 .

T. Ylonen et C. Lonvick

,

The Secure Shell (SSH) Protocol Architecture ,
RFC 4251 ,
janvier 2006 .

T. Ylonen et C. Lonvick

,

The Secure Shell (SSH) Authentication Protocol ,
RFC 4252 ,
janvier 2006 .

T. Ylonen et C. Lonvick

,

The Secure Shell (SSH) Transport Layer Protocol ,
RFC 4253 ,
janvier 2006 .

T. Ylonen et C. Lonvick

,

The Secure Shell (SSH) Connection Protocol ,
RFC 4254 ,
janvier 2006 .

J. Schlyter et W. Griffin

,

Using DNS to Securely Publish Secure Shell (SSH) Key Fingerprints ,
RFC 4255 ,
janvier 2006 .

F. Cusack et M. Forssen

,

Generic Message Exchange Authentication for the Secure Shell Protocol (SSH) ,
RFC 4256 ,
janvier 2006 .

J. Galbraith et P. Remaker

,

The Secure Shell (SSH) Session Channel Break Extension ,
RFC 4335 ,
janvier 2006 .

M. Bellare, T. Kohno et C. Namprempre

,

The Secure Shell (SSH) Transport Layer Encryption Modes ,
RFC 4344 ,
janvier 2006 .

B. Harris

,

Improved Arcfour Modes for the Secure Shell (SSH) Transport Layer Protocol ,
RFC 4345 ,
janvier 2006 .

M. Friedl, N. Provos et W. Simpson

,

Diffie-Hellman Group Exchange for the Secure Shell (SSH) Transport Layer Protocol ,
RFC 4419 ,
mars 2006 .

J. Galbraith et R. Thayer

,

The Secure Shell (SSH) Public Key File Format ,
RFC 4716 ,
novembre 2006 .

D. Stebila et J. Green

,

Elliptic Curve Algorithm Integration in the Secure Shell Transport Layer ,
RFC 5656 ,
décembre 2009 .

A. Perrig et D. Song

,

Hash Visualization: a New Technique to improve Real-World Security ,
1999 ,
International Workshop on Cryptographic Techniques and E-Commerce (CrypTEC ’99) .

AUTEURS

OpenSSH est un dérivé de la version originale et libre 1.2.12 de ssh par Tatu Ylonen. Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt et Dug Song ont corrigé de nombreux bogues, rajouté de nouvelles fonctionnalités et créé OpenSSH. Markus Friedl a contribué à la prise en charge des versions 1.5 et 2.0 du protocole SSH.

TRADUCTION

La traduction française de cette page de manuel a Ă©tĂ© créée par Laurent Gautrot <l dot gautrot at free dot fr>, Éric Piel <eric.piel@tremplin-utc.net> et Lucien Gentis <lucien.gentis@waika9.com>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 : https://www.gnu.org/licenses/gpl-3.0.html concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org . Debian 4 décembre, 2024 SSH (1)