Outils personnels
Vous êtes ici : Accueil Blog Ssh avec une passphrase à vide
Navigation
 
Actions sur le document

Ssh avec une passphrase à vide

Filed Under:

Configuration du serveur SSH

 
Bien configurer son serveur SSH est la première étape pour qu'un minimum de sécurité soit au rendez-vous. Tout d'abord, banissez les identifications sur les Rhosts, et celles uniquement sur les hosts. Le fichier à modifier est /etc/ssh/sshd_config.
 

RhostsAuthentication no

 

IgnoreRhosts yes

RhostsRSAAuthentication no

HostbasedAuthentication no

IgnoreUserKnownHosts yes

Je n'autorise ensuite que le protocole 2, plus complet et plus sécurisé. Profitez-en pour spécifier les clés SSH (RSA et DSA) de la machine :
 
 

Protocol 2
# HostKeys for protocol version 2

HostKey /etc/ssh/ssh_host_rsa_key

HostKey /etc/ssh/ssh_host_dsa_key

Ensuite, imposez quelques restrictions : n'autorisez pas le root à se loguer directement, autorisez seulement certain groupes d'utilisateurs à se loguer, ...
AllowGroups users
 

LoginGraceTime 30

PermitRootLogin no

StrictModes yes

PermitEmptyPasswords no

Ensuite, pour permettre aux utilisateurs de s'identifier uniquement grâce à leurs clés sans passer par l'étape du mot de passe :
RSAAuthentication yes
 

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

Le %h représente le répertoire home de l'utilisateur. Bien sûr, avant d'avoir configurer tout ce système de clés, les utilisateurs auront besoin de pouvoir se loguer grâce à leur mot de passe ! Ils ne se loguent pas non plus toujours d'une machine personnelle, ni sur laquelle ils possèdent un compte. Il faut aussi penser aux utilisateurs de Windows. On permet donc l'authentification par les méthodes habituelles :
ChallengeResponseAuthentication yes
 

PasswordAuthentication yes

PAMAuthenticationViaKbdInt yes

Après avoir fait ces modifications sur le fichier de configuration, relancez le serveur :
sudo /etc/rc.d/init.d/sshd restart
Arrêt de sshd :                                           [  OK  ]
Démarrage de sshd :                                  [  OK  ]
Ces modifications sur le serveur SSH sont à mettre en place sur toutes les machines sur lesquelle vous souhaitez vous connecter, évidemment. Ou bien, si vous n'avez pas l'accès root, vérifiez au moins qu'elle sont présentes, sinon les explications suivantes ne serviront à rien :).

Configuration du client SSH

Création des clés sur la machine locale depuis le répertoire .ssh de votre home  (ici /home/kwa29/.ssh, créer .ssh si il n'existe pas) :

ssh-keygen -t dsa -b 1024
Generating public/private dsa key pair.
Enter file in which to save the key (/home/kwa29/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/kwa29/.ssh/id_dsa
Your public key has been saved in /home/kwa29/.ssh/id_dsa
The key fingerprint is:
XXXXXXXXXXXXXX

Copier sur le serveur distant la clé publique dans authorized_keys

Par scp sur la machine cliente

scp -P no_port /home/kwa29/.ssh/id_dsa.pub user@host:/home/MyRep

Sur la machine distante

cat id_dsa.pub > authorized_keys

chmod 600 authorized_keys

A ce stade depuis votre machine locale, et si vous avez laissé le passphrase à vide, vous pouvez vous connecter en tapant l'adresse compléte.
Maintenant on va customiser la chose :

créez un fichier config dans votre .ssh (sur votre machine en local) dans lequel vous insérez ceci :

Host mon_nom
HostName your_hostname
Port 22
user moi

Maintenant un

ssh mon_nom

suffit pour vous connecter sans mot de passe !!!! Magique.

Si tout se passe bien vous devriez voir dans le /var/log/secure de la machine distante

Aug  7 18:20:59 localhost sshd[5644]: Accepted publickey for kwa29 from 192.168.100.1 port XXXX ssh2