SSH
Vous pouvez utiliser le protocole SSH comme serveur proxy, l'équivalent de ssh -D.
Syntaxe du profil :
- Authentification par mot de passe
[Proxy]
proxy = ssh, 1.2.3.4, 22, root, password=pw
- Authentification par clé publique
[Proxy]
proxy = ssh, 1.2.3.4, 22, root, private-key=base64(privateKeyFileContent)
- Notez que vous devez encoder à nouveau en base64 l'intégralité du fichier de clé privée, même si ce fichier utilise lui-même l'encodage base64. La valeur doit tenir sur une seule ligne : demandez donc à
OpenSSLde ne pas couper sa sortie (-A) :
// OpenSSL 1.x
openssl enc -base64 -A -in /path/to/privatefile
// OpenSSL 3+
openssl base64 -A -in /path/to/privatefile
Trois types de clés privées sont pris en charge : RSA/ECDSA/ED25519. DSA (
ssh-dss) n'est pas pris en charge : ni une clé d'hôte DSA ni une clé privée DSA ne fonctionnent.Les méthodes KEX et les chiffrements ci-dessous sont les réglages compilés par défaut de libssh2, qu'utilisent Chute Mac, iOS et tvOS ; Chute Android utilise à la place le jeu par défaut de sa bibliothèque SSH, sshj. Il ne s'agit pas d'une liste d'autorisation que Chute impose — Chute ne les restreint pas :
| Méthode KEX |
|---|
| diffie-hellman-group1-sha1 |
| diffie-hellman-group14-sha1 |
| ecdh-sha2-nistp256 |
| ecdh-sha2-nistp384 |
| ecdh-sha2-nistp521 |
| curve25519-sha256@libssh.org |
| curve25519-sha256 |
| diffie-hellman-group16-sha512 |
| diffie-hellman-group18-sha512 |
| diffie-hellman-group14-sha256 |
| diffie-hellman-group-exchange-sha256 |
| diffie-hellman-group-exchange-sha1 |
| Chiffrement |
|---|
| chacha20-poly1305@openssh.com |
| aes256-gcm@openssh.com |
| aes128-gcm@openssh.com |
| aes256-ctr |
| aes192-ctr |
| aes128-ctr |
| aes256-cbc |
| rijndael-cbc@lysator.liu.se |
| aes192-cbc |
| aes128-cbc |
| blowfish-cbc |
| arcfour128 |
| arcfour |
| cast128-cbc |
| 3des-cbc |
- Vous pouvez désormais indiquer le paramètre de délai d'inactivité. La valeur par défaut est de 180 secondes. Les connexions établies par la politique partagent une même session SSH, qui est fermée dès qu'elle n'a porté aucune connexion pendant ce nombre de secondes. Tant qu'une connexion est ouverte, la session reste active, si silencieuse que soit cette connexion, et une connexion qui se termine n'affecte pas les autres connexions de la même session.
[Proxy]
proxy = ssh, 1.2.3.4, 22, root, password=pw, idle-timeout=180
Empreinte du serveur
Pour parer aux attaques MitM, vous pouvez indiquer l'empreinte de la clé publique du serveur avec server-fingerprint, ce qui garantit que seuls des serveurs légitimes sont contactés. Une entrée est soit la clé publique du serveur telle que l'écrit ~/.ssh/known_hosts — le type de clé et la clé en base64, ssh-ed25519 AAAA… —, soit son empreinte SHA-256 telle que l'affiche ssh-keygen -l, SHA256:…. Les guillemets doubles autour de la valeur sont facultatifs. Lorsque server-fingerprint est écrit mais qu'aucune de ses entrées ne peut être lue, toute connexion est refusée, plutôt que de faire confiance à n'importe quel serveur. Une connexion refusée est consignée dans le journal avec le type et l'empreinte SHA256: de la clé que le serveur a présentée.
[Proxy]
proxy = ssh, 1.2.3.4, 22, root, password=pw, idle-timeout=180, server-fingerprint = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5ABCAIO9KYmO+KZQH3VXU5C1aO2xl4G8+7NLkOYDNBxfZUqep"
Comme un serveur peut posséder plusieurs clés publiques, le paramètre server-fingerprint permet de configurer plusieurs empreintes.
server-fingerprint = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5ABCAIO9KYmO+KZQH3VXU5C1aO2xl4G8+7NLkOYDNBxfZUqep,ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCrklKEp4vuMqqNiS2lvDL7g3rQ2dAwvik+KIC4iVJNoaHhkLRAEv1y/dQYixf71ORZUI+w3AFKp1RzfiuwciTsMnp7Hq9uvcHqDRDaCrYe1EDx3Dr0XlH1wsdUcr+6DOAUzRSXK9LSEPVK1xHb6WJBaTkNOHruPCmrINA/DEIiflMN2q77AWlsMt+unhmY2YWgJprY+vpDOcXk8+CnL4K+QWNlHB8mTfB58p1oadz1xWG9so//rUMp7JHtUt6QpVJvwf/Qh7IcFNDhSHwSTJu2Px2P9biuUOPkmPtZmTIdnDx25EUWtmE/+VE3lZAYuur7KuGsG0o+X8dYnEMAN3ar"
Vous pouvez obtenir l'empreinte du serveur depuis le fichier ~/.ssh/known_hosts. Vous pouvez aussi utiliser la commande ssh-keyscan example.com dans un environnement réseau de confiance pour la récupérer. Veuillez retirer le nom d'hôte en début de ligne avant de la copier dans Chute : une entrée qui commence encore par le nom d'hôte ne peut pas être lue.