296 votes

Comment puis-je configurer une connexion SSH sans mot de passe ?

Je veux pouvoir me connecter à un site distant via ssh sans avoir à entrer le mot de passe à chaque fois.

  • Comment le mettre en place ?
  • Une commande différente est-elle nécessaire pour exécuter une session sans mot de passe ?

320voto

Rinzwind Points 270388

Réponse :

Exécutez cette commande (si vous avez déjà une clé SSH, vous pouvez sauter cette étape) :

ssh-keygen

Vous devrez ensuite copier la nouvelle clé sur votre serveur. :

ssh-copy-id user@host
## or if your server uses custom port no:
ssh-copy-id "user@host -p 1234"

Une fois la clé copiée, connectez-vous à la machine par ssh comme d'habitude :

ssh user@host

Vous pouvez maintenant vous connecter sans entrer de mot de passe à partir de la machine sur laquelle vous avez exécuté les commandes.

Exemple

not-marco@rinzwind-desktop:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/not-marco/.ssh/id_rsa):
Created directory '/home/not-marco/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/not-marco/.ssh/id_rsa.
Your public key has been saved in /home/not-marco/.ssh/id_rsa.pub.
The key fingerprint is:
b1:25:04:21:1a:38:73:38:3c:e9:e4:5b:81:e9:ac:0f not-marco@rinzwind-desktop
The key's randomart image is:
+--[ RSA 2048]----+
|.o= . oo.        |
|*B.+ . .         |
|*=o .   o .      |
| = .     =       |
|. o     S        |
|E.               |
| o               |
|  .              |
|                 |
+-----------------+

not-marco@rinzwind-desktop:~$ ssh-copy-id not-marco@server
not-marco@server's password:
Now try logging into the machine, with "ssh 'not-marco@server'", and check in:

  ~/.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

Explication

Cela suppose que vous pouvez déjà vous connecter avec succès à votre serveur via SSH.

Vous devrez générer une paire de clés SSH qui vous permettra de vous identifier en tant que vous-même sans utiliser de mot de passe. Vous pouvez choisir de protéger les clés à l'aide d'un code de passe si vous le souhaitez, mais celui-ci peut être laissé vide pour permettre un accès SSH totalement sans mot de passe.

  1. Créez d'abord votre paire de clés SSH en exécutant ssh-keygen cela créera un id_rsa y id_rsa.pub fichier. Le site pub est ce qui va sur les serveurs, la clé privée ( id_rsa ) est ce qui reste avec vous et est la façon dont vous vous identifiez.
  2. Ensuite, copiez la clé publique sur votre serveur avec ssh-copy-id user@server en remplaçant user par votre utilisateur distant et server par le nom DNS ou l'adresse IP de la machine. Il vous sera demandé votre mot de passe SSH, entrez-le et si tout se passe bien, vous pourrez accéder à la machine via ssh user@server sans avoir besoin d'un mot de passe.

Références

43voto

Ravindra Points 531

Tapez les commandes suivantes :

  1. ssh-keygen

    Pulse Enter jusqu'à ce que vous obteniez l'invite

  2. ssh-copy-id -i root@ip_address

    (Il demandera une fois le mot de passe du système hôte)

  3. ssh root@ip_address

Vous devriez maintenant être en mesure de vous connecter sans mot de passe.

28voto

Stefan Points 7940

La façon dont je procède habituellement est la suivante :

ssh-keygen -t rsa

(Lorsqu'on vous demande un mot de passe, laissez-le vide)

Ensuite : cat ~/.ssh/id_rsa.pub | ssh username@hostname 'cat >> .ssh/authorized_keys'

(Pour cela, le dossier .ssh doit se trouver dans le répertoire personnel du nom d'hôte ciblé, avec le fichier authorized_keys à l'intérieur).

Bien entendu, remplacez le nom d'utilisateur par le nom d'utilisateur souhaité et le nom d'hôte par le nom d'hôte ou l'adresse IP souhaités.

Après cela, il suffit de SSH à cette boîte comme vous en avez l'habitude.

19voto

Bruno Pereira Points 70510

J'utilise normalement sshpass pour cela, installez-le avec sudo apt-get install sshpass et l'utiliser comme ceci

sshpass -p 'password' ssh your_username@your_server

11voto

Thufir Points 4303

Désactiver l'authentification par mot de passe

Parce que beaucoup de gens avec des serveurs SSH utilisent des mots de passe faibles, de nombreux attaquants en ligne chercheront un serveur SSH, puis commenceront à deviner mots de passe au hasard. Un attaquant peut essayer des milliers de mots de passe en une heure. mots de passe en une heure, et deviner même le mot de passe le plus fort avec suffisamment de temps. La solution recommandée par solution recommandée est d'utiliser des clés SSH au lieu de mots de passe. Pour être aussi aussi difficile à deviner qu'une clé SSH normale, un mot de passe devrait contenir 634 lettres et chiffres aléatoires. Si vous devez toujours être en mesure de vous connecter à votre ordinateur à l'aide d'une clé SSH, vous devez désactiver complètement l'authentification par mot de passe.

Si vous désactivez l'authentification par mot de passe, il sera seulement possible de se connecter à partir d'ordinateurs que vous avez spécifiquement approuvés. Cela améliore massivement sécurité, mais il vous est impossible de vous connecter à votre propre ordinateur depuis un ami. votre propre ordinateur à partir de l'ordinateur d'un ami sans l'avoir approuvé au préalable, ou à partir de votre propre ordinateur portable si vous supprimez accidentellement votre clé.

Il est recommandé de désactiver l'authentification par mot de passe, à moins que vous n'ayez un fichier raison spécifique de ne pas le faire.

Pour désactiver l'authentification par mot de passe, recherchez la ligne suivante dans le fichier votre fichier sshd_config :

#PasswordAuthentication yes

remplacez-la par une ligne qui ressemble à ceci :

PasswordAuthentication no

Une fois que vous avez sauvegardé le fichier et redémarré votre serveur SSH. ne devrait même pas vous demander un mot de passe lorsque vous vous connectez.

https://help.ubuntu.com/community/SSH/OpenSSH/Configuring#disable-password-authentication

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X