corrections mineures
This commit is contained in:
parent
ff50acc08b
commit
6e21632eac
|
@ -272,7 +272,7 @@ Options utiles pour `scp` :
|
|||
|
||||
* `-P 2222` : utilise le port 2222 pour le serveur distant (malheureusement différent de `ssh`…)
|
||||
* `-q` : mode silencieux
|
||||
* `-C` : active la compression
|
||||
* `-C` : active la compression
|
||||
* `-i identity_file` : utilise une clé SSH spécifique
|
||||
|
||||
|
||||
|
@ -347,9 +347,9 @@ Pour générer une clé SSH *ed25519* :
|
|||
~~~
|
||||
$ ssh-keygen -t ed25519 -a 100
|
||||
Generating public/private ed25519 key pair.
|
||||
Enter file in which to save the key (/home/jdoe/.ssh/id_ed25519):
|
||||
Enter passphrase (empty for no passphrase):
|
||||
Enter same passphrase again:
|
||||
Enter file in which to save the key (/home/jdoe/.ssh/id_ed25519):
|
||||
Enter passphrase (empty for no passphrase):
|
||||
Enter same passphrase again:
|
||||
Your identification has been saved in /home/jdoe/.ssh/id_ed25519.
|
||||
Your public key has been saved in /home/jdoe/.ssh/id_ed25519.pub.
|
||||
The key fingerprint is:
|
||||
|
@ -375,9 +375,9 @@ Pour générer une clé SSH *RSA* :
|
|||
~~~
|
||||
$ ssh-keygen -o -t rsa -b 4096 -a 100
|
||||
Generating public/private rsa key pair.
|
||||
Enter file in which to save the key (/home/jdoe/.ssh/id_rsa):
|
||||
Enter passphrase (empty for no passphrase):
|
||||
Enter same passphrase again:
|
||||
Enter file in which to save the key (/home/jdoe/.ssh/id_rsa):
|
||||
Enter passphrase (empty for no passphrase):
|
||||
Enter same passphrase again:
|
||||
Your identification has been saved in /home/jdoe/.ssh/id_rsa.
|
||||
Your public key has been saved in /home/jdoe/.ssh/id_rsa.pub.
|
||||
The key fingerprint is:
|
||||
|
@ -425,19 +425,19 @@ no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa XXXXX co
|
|||
|
||||
### Agent SSH
|
||||
|
||||
Il est important de protéger une clé SSH utilisée par humain par une passphrase.
|
||||
Pour éviter de taper sa passphrase à chaque utilisation, on peut utiliser un *agent SSH* qui va retenir la clé SSH en mémoire.
|
||||
Il est important de protéger une clé SSH utilisée par un humain par une passphrase.
|
||||
Pour éviter de saisir sa passphrase à chaque utilisation, on peut utiliser un *agent SSH* qui va retenir la clé SSH en mémoire.
|
||||
|
||||
En général, un agent SSH est lancé par son Window Manager.
|
||||
Sinon, on peut le lancer automatiquement via son `~/.profile` :
|
||||
|
||||
~~~
|
||||
~~~{.bash}
|
||||
eval $(ssh-agent) 1> /dev/null
|
||||
~~~
|
||||
|
||||
Une fois lancé, l'agent ouvre une socket Unix dans `$TMPDIR/ssh-XXXXXXXXXX/agent.PPID` et la rend disponible via les variables d'environnement suivantes :
|
||||
|
||||
~~~
|
||||
~~~{.bash}
|
||||
SSH_AUTH_SOCK=/tmp/ssh-IklIVmCGvWgT/agent.1151
|
||||
SSH_AGENT_PID=1198
|
||||
~~~
|
||||
|
@ -446,11 +446,11 @@ On peut alors lancer la commande `ssh-add` qui va nous demander notre passphrase
|
|||
|
||||
~~~
|
||||
$ ssh-add -t 36000
|
||||
Enter passphrase for /home/jdoe/.ssh/id_ed25519:
|
||||
Enter passphrase for /home/jdoe/.ssh/id_ed25519:
|
||||
Identity added: /home/jdoe/.ssh/id_ed25519 (/home/jdoe/.ssh/id_ed25519)
|
||||
~~~
|
||||
|
||||
> *Note* : l'option [-t](http://man.openbsd.org/ssh-agent#t) permet de limiter à 10h le temps où l'agent va conserver la passphrase en mémoire. Si l'option n'est pas utilisée, ce temps sera infini, ce que l'on déconseille en général.
|
||||
> *Note* : l'option [-t](http://man.openbsd.org/ssh-agent#t) permet de limiter à 10h (36 000 secondes) le temps où l'agent va conserver la passphrase en mémoire. Si l'option n'est pas utilisée, ce temps sera infini, ce que l'on déconseille en général.
|
||||
|
||||
On peut également utiliser l'outil [keychain](https://www.funtoo.org/Keychain) qui facilite l'utilisation d'un agent SSH (et d'un agent GPG).
|
||||
Il va notamment lancer les agents si ils ne sont pas encore lancés, et transmettre plusieurs clés SSH si besoin.
|
||||
|
@ -462,7 +462,7 @@ $ keychain id_ed25519 id_rsa --timeout 600
|
|||
* Starting ssh-agent...
|
||||
* Starting gpg-agent...
|
||||
* Adding 2 ssh key(s): /home/jdoe/.ssh/id_ed25519 /home/jdoe/.ssh/id_rsa
|
||||
Enter passphrase for /home/jdoe/.ssh/id_ed25519:
|
||||
Enter passphrase for /home/jdoe/.ssh/id_ed25519:
|
||||
* ssh-add: Identities added: /home/jdoe/.ssh/id_ed25519 /home/jdoe/.ssh/id_rsa (life=600m)
|
||||
~~~
|
||||
|
||||
|
@ -485,7 +485,7 @@ On lance la commande suivante :
|
|||
$ ssh -L 3306:127.0.0.1:3306 ssh.example.com
|
||||
~~~
|
||||
|
||||
Et l'on pourra accéder au service MySQL sur sa propre machine via 127.0.0.1 port 3306.
|
||||
Et l'on pourra accéder au service MySQL sur sa propre machine via 127.0.0.1 sur le port 3306.
|
||||
|
||||
Si le service MySQL est sur une 3ème machine (accessible depuis le serveur distant), il suffit de préciser son IP avec l'option `-L` :
|
||||
|
||||
|
@ -516,7 +516,7 @@ Enfin il faut noter que si l'on veut utiliser un port local inférieur à 1024,
|
|||
Si l'on est derrière une connexion NAT par exemple, on peut ouvrir un tunnel pour permettre une connexion distante depuis une machine accessible en SSH :
|
||||
|
||||
~~~
|
||||
ssh -R 22000:127.0.0.1:22 ssh.example.com
|
||||
$ ssh -R 22000:127.0.0.1:22 ssh.example.com
|
||||
~~~
|
||||
|
||||
Depuis *ssh.example.com* on peut ainsi accéder à la machine derrière le NAT via `ssh -p22000 127.0.0.1`.
|
||||
|
@ -537,9 +537,9 @@ C'est ainsi pratique avec un navigateur où l'ensemble du trafic vers le web pas
|
|||
|
||||
### Séquences d'échappement SSH
|
||||
|
||||
<https://lonesysadmin.net/2011/11/08/ssh-escape-sequences-aka-kill-dead-ssh-sessions/amp/>
|
||||
<https://lonesysadmin.net/2011/11/08/ssh-escape-sequences-aka-kill-dead-ssh-sessions/>
|
||||
|
||||
On peut utiliser des combinaisons de touches spéciales via une connexion SSH pour intéragir sur la connexion en cours.
|
||||
On peut utiliser des combinaisons de touches spéciales via une connexion SSH pour intéragir avec la connexion en cours.
|
||||
|
||||
En tapant `Entrée + ~ + ?` on obtient la liste des séquences possibles :
|
||||
|
||||
|
@ -606,15 +606,15 @@ Côté serveur, vous devez :
|
|||
- Autoriser l'IP Forwarding : `sysctl -w net.ipv4.ip_forward=1`
|
||||
- Si besoin, mettre une règle de NAT, par exemple sous Linux : `iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE`
|
||||
|
||||
Pour lancer le connexion VPN, on fera :
|
||||
Pour lancer la connexion VPN, on fera :
|
||||
|
||||
~~~
|
||||
# ssh -w 42:42 ssh.example.com
|
||||
~~~
|
||||
|
||||
On a ensuite un périphérique `tun42` utilisable des 2 côtés à configurer.
|
||||
On a ensuite un périphérique `tun42` utilisable, à configurer des 2 côtés.
|
||||
|
||||
- Côté serveur SSH : `ifconfig tun42 172.17.18.2/24`
|
||||
- Côté serveur SSH : `ifconfig tun42 172.17.18.2/24`
|
||||
- Côté client SSH : `ifconfig tun42 172.17.18.1/24`
|
||||
|
||||
On peut alors enfin configurer le routage au niveau client, par exemple sous Linux :
|
||||
|
@ -625,7 +625,7 @@ On peut alors enfin configurer le routage au niveau client, par exemple sous Lin
|
|||
|
||||
### UserKnownHostsFile
|
||||
|
||||
OpenSSH se sert du fichier `~/.ssh/known_hosts` pour retenir le fingerprint de chaque connexion effectuée.
|
||||
OpenSSH se sert du fichier `~/.ssh/known_hosts` pour retenir l'empreinte (_fingerprint_) de chaque connexion effectuée.
|
||||
Cela lui permet de détecter un changement des clés du serveur, notamment une tentative d'usurpation d'un serveur :
|
||||
|
||||
~~~
|
||||
|
@ -659,7 +659,7 @@ ssh.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC2nP2WzQ8hkZDiEq5+QSGFhTB7
|
|||
ssh.example.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBsUneE642qr/kzKwJcKl9Cgog/kgCqRLZwZs4J7RRt8
|
||||
~~~
|
||||
|
||||
Puis l'on crée un fichier contenant :
|
||||
Puis on crée un fichier contenant :
|
||||
|
||||
~~~
|
||||
example-ssh,ssh.example.com,192.0.2.42 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC2nP2WzQ8hkZDiEq5+QSGFhTB7SYfRa7/IG0gMOIoCDXH8b3sfsBUUEL8ZSFaWgNKskUnpgg/fqAhvnDLOPskr3OGXRfrCR68fCqn5H1zBrHB1kpdjPW9ezUe1xoY3hGp6LITANHWpZie1wBjYAzaBO70hNAo4JMCQvZXDsQdyws2DRSuYtiAoG/ZY0+t2VZh3MJLcofv1wNo43M+aHJR2xWmQSE7cWjMlcw/QOmsWJBv1+Kb/nK2Q7buX/byvY8ySu5ydATnyEinzbutZXc/t/FioOtWMeqh6NlD3aPGIpUTmf8ow+c1QwZWOC3T2GWyTD5KVmAZSm77lWkpYFcd1
|
||||
|
@ -787,7 +787,7 @@ Les clés SSH avec l'algorithme DSA sont dépréciées depuis Stretch.
|
|||
On peut limiter le temps d'une connexion SSH inactive en utilisant la variable d'environnement *TMOUT*.
|
||||
On peut provoquer une déconnexion automatique au bout d'1h d'activité en positionnant :
|
||||
|
||||
~~~
|
||||
~~~{.bash}
|
||||
export TMOUT=3600
|
||||
~~~
|
||||
|
||||
|
@ -823,15 +823,15 @@ On peut aussi verrouiller temporairement son agent SSH via :
|
|||
|
||||
~~~
|
||||
$ ssh-add -x
|
||||
Enter lock password:
|
||||
Again:
|
||||
Enter lock password:
|
||||
Again:
|
||||
Agent locked.
|
||||
|
||||
$ ssh-add -l
|
||||
The agent has no identities.
|
||||
|
||||
$ ssh-add -X
|
||||
Enter lock password:
|
||||
Enter lock password:
|
||||
Agent unlocked.
|
||||
~~~
|
||||
|
||||
|
@ -844,4 +844,3 @@ Voici plusieurs méthodes pour protéger son serveur SSH (qui peuvent se cumuler
|
|||
- utiliser du Port Knocking pour camoufler son port SSH
|
||||
- ne pas autoriser les connexions SSH avec un mot de passe (`PasswordAuthentication no` dans *sshd_config*)
|
||||
- configurer [Fail2Ban](HowtoFail2Ban) pour bannir les adresses IP qui se trompent de mot de passe
|
||||
|
||||
|
|
Loading…
Reference in a new issue