Wiki adminsys - Cebador.fr

Wiki d'administration systèmes et réseaux.
Simples notes personnelles et non réelle documentation exhaustive.
Donc désolé pour les coquilles et les inexactitudes.
Doc sous licence GNU FDL 1.3

Outils pour utilisateurs

Outils du site


ssh

SSH

Générer paire de clés :

# RSA
ssh-keygen -t rsa -b 4096 -f .ssh/id_ma_cle

# ED25519
ssh-keygen -t ed25519 -f .ssh/id_ma_cle

Éviter la vérification fingerprint de l'hôte lors de la connexion sur un serveur.

ssh -o "StrictHostKeyChecking no" -o "UserKnownHostsFile /dev/null" <username>@<ipaddress>

Les clés privées et publiques peuvent avoir n'importe quel nom (pas forcément le id_rsa par défault). En revanche, il faut qu'elles aient le même nom et que seul le .pub fasse la différence (par exemple key_mulder et key_mulder.pub).

Copier sur une clé publique sur un serveur distant

Si l'authentification par mot de passe est autorisée :

ssh-copy-id -i ~/.ssh/id_rsa.pub login@ip

Et si le port est différent du port 22 :

ssh-copy-id -i ~/.ssh/id_rsa.pub -p <num_port> "<username>@<ipaddress>"

Si seule l'authentification par clé est autorisée :

ssh login@serveur "echo $(cat ~/.ssh/id_rsa.pub) >> .ssh/authorized_keys"

Importer clé publique dans autre serveur en écrasant empreinte déjà existante : ssh-keygen -f “chemin/de/la/clé” -R ip

Transferts de fichiers et répertoires

Transférer un fichier vers un autre pc :

  1. Se connecter en ssh sur l'autre pc
  2. scp <fichier> <username>@<ipaddressDistant>:<DestinationDirectory>

Transférer répertoire entier vers un autre pc :

  1. Se connecter en ssh sur l'autre pc
  2. Taper :
    scp -r (-r pour répertoire) /chemin/en/local login@ip:/repertoire/destination

Accès à un hôte distant par forward de port

Permet de se connecter à un hôte appartenant situé dans un autre réseau via un autre hôte faisant office de passerelle.

Commande : ssh -L PORT-LOCAL:IP-HOTE-DISTANT:PORT-HÔTE-DISTANT LOGIN@IP-PASSERELLE

L'exemple ci-dessous permet de se connecter sur le port 80 de l'hôte 10.10.1.42 en passant par l'hôte 10.10.10.5 et via le port local 8443.

ssh -L 8443:10.10.1.42:80 pi@10.10.10.5

Après avoir lancé cette commande SSH, ouvrir Firefox et aller sur 127.0.0.1:8443.

Problèmes récurrents

sign_and_send_pubkey: signing failed: agent refused operation

Vérifier les droits sur les clés privée et publique. S'ils sont trop élevés, SSH refuse d'établir la connexion. Passer les deux clés en chmod 600.

Erreur Too many authentication failures

Côté client, tester avec l'option PubkeyAuthentication=no :

ssh -o PubkeyAuthentication=no mulder@example.net

Filezilla : protocol error en SFTP

Si Filezilla sort cette erreur lors d'une connexion en SFTP :

Erreur :    FATAL ERROR: Remote side sent disconnect message
Erreur :    type 2 (protocol error):
Erreur :    "Too many authentication failures"

Lancer Filezilla via cette commande :

SSH_AUTH_SOCK=null filezilla &

cf https://blog.programster.org/filezilla-fix-sftp-protocol-connection-error

no matching key exchange method found.

Il arrive qu'on tombe sur ce type d'erreur :

Unable to negotiate with 123.123.123.123 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1

Cela signifie que le serveur sur lequel on veut se connecter utilise d'autre types de chiffrement et/ou d'échange de clés.

Il faut donc changer les paramètres du client SSH pour ce type de client. Pour cela, éditer le fichier ~/.ssh/config, ajouter un/des hôte(s) et y ajouter les paramètres nécessaires.

Exemple :

Host 93.184.216.34, 123.123.123.123
    KexAlgorithms +diffie-hellman-group1-sha1
    HostKeyAlgorithms +ssh-rsa
    Ciphers +aes128-cbc
ssh.txt · Dernière modification : de Administrateur