Espace Wiki ∂'Alembert Espace Guide de survie du SysAdmin Espace Guide de survie du Développeur Espace Institut ∂’Alembert Le Site Aide PmWikiFr Help PmWiki |
Vous êtes dans un espace restreint en écriture.
Secure Shell (SSH) est à la fois un programme informatique et un protocole de communication sécurisé. Le protocole de connexion impose un échange de clés de chiffrement en début de connexion. Par la suite, tous les segments TCP sont authentifiés et chiffrés. Il devient donc impossible d'utiliser un sniffer pour voir ce que fait l'utilisateur. Le protocole SSH a été conçu avec l'objectif de remplacer les différents programmes rlogin, telnet, rcp, ftp et rsh.
Utilisation Simple
avec en option: -b 4096 : taille de la clé -f ~/.ssh/id_rsa_newkey : fichier de la clé privée Voir aussi Windows 10
Utilisation AvancéeTunnel SSHLe but est de faire un tunnel chiffré pour utiliser une autre application depuis ma machine vers une machine non accessible directement. Comme un exemple vaux mieux qu'un long discours, je veux faire un sftp (port 22) sur la machine nommée dist à travers la passerelle nommée pass DéfinitionsLes comptes utilisés:
les ports:
Marche à suivre
localhost $ ssh -f -N -L2222:dist:22 user_pass@pass
localhost $ sftp -oPort=2222 user_dist@localhost sftp> AutomatisationAvec .ssh/config il est possible « d'automatiser » la création de tunnels ssh. Exemple permettant de voir le site web depuis ma machine leger, en passant par vauban (inaccessible hors laboratoire):: Host web Hostname leger.dalembert.upmc.fr User patrick ProxyJump patrick@vauban.dalembert.upmc.fr ForwardAgent No GSSAPIAuthentication no LocalForward 8080 www.dalembert.upmc.fr:80 LocalForward 8081 intranet.dalembert.upmc.fr:80 Pour creer les tunnels faites la commandes: ssh web -N L'affichage semble figée, c'est nornal. Il faut faire Ctrl-C pour terminer les tunnels et reprendre la main. Connaitre la clée publique d'une clé privée$ ssh-keygen -y -f <private key file> Commande forcéeUne commande forcée est un mécanisme permettant d'executer autre chose qu'un shell après une connexion réussie à un serveur ssh Mise en placeLa mise em place se fait dans le fichier .ssh/authorized. Pour cela, il faut ajouter, avant la clé un texte au genre: command="ici la commande à executer" ssh-rsa ... (la suite de la clé) D'autre options sont disponibles. comme par exemple from="ma.machine.fai" command="echo non non, tu n'as pas le droit de te connecter depuis 'ma.machine.fai'" ... Ce mécanisme permet une gestion souple et puissante des accès à un compte ssh ! Messages Connusno matching key exchange method found / no matching host key type foundLe message complet, dans mon exemple est Unable to negotiate with UNKNOWN port 65535: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1] ou Unable to negotiate with UNKNOWN port 65535: no matching host key type found. Their offer: ssh-rsa,ssh-dss Ces messages indiquent que le client ssh et le serveur ne trouvent pas d'algorithme pour la communication sécurisée. Les algorithmes proposés sont obsolètes. Pour l'activer, tout de même, il fait ajouter dans .ssh/config sous le host KexAlgorithms +diffie-hellman-group1-sha1 HostKeyAlgorithms +ssh-rsa PubkeyAcceptedKeyTypes +ssh-rsa voir openSSH - Legacy Options « OpenSSH supports this method [NDR diffie-hellman-group1-sha1], but does not enable it by default because it is weak » WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!Lorsque l'on réinstalle un serveur Linux et que l'on établit une nouvelle connexion SSH vers celui-ci, on se retrouve souvent avec ce message d'erreur : @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the ECDSA key sent by the remote host is 91:22:9d:65:af:ac:03:10:b2:0a:4b:7d:19:1d:60:40. Please contact your system administrator. Add correct host key in /root/.ssh/known_hosts to get rid of this message. Offending ECDSA key in /root/.ssh/known_hosts:1 ECDSA host key for picasso has changed and you have requested strict checking. Host key verification failed. Cela signifie que vos clefs SSH ont changé. Dans ce cas, avant de mettre à jour votre fichier .ssh/known_hosts, il faut vérifier que la fingerprint du serveur est bien le bon. Deux possibilités à cela:
Puis, après vérification on peut, sur la machine cliente, supprimer l'ancienne clé: ssh-keygen -R adresse-ip-du-serveur Vérification manuellePour cela, une fois sur la machine, lancer la commande (ici avec la clé ECDSA): ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub 256 91:22:9d:65:af:ac:03:10:b2:0a:4b:7d:19:1d:60:40 root@picasso (ECDSA) On voit bien que la fingerprint est la même ... ouf :) Vérification automatique avec le DNSa tester voir http://www.phcomp.co.uk/Tutorials/Unix-And-Linux/ssh-check-server-fingerprint.html Debugcommande permettant de coloriser les log par niveau de debug (le nombre de ssh -vvv modemeca 2>&1 | sed -E "s/(^debug([0-9]):.*)$/\x1b[3\2m&\x1b[m/" Voir Aussi |