# configuration ssh

## Axilatis

Bonjour !

Je ne m'y connais pas très bien en ssh, mais mon but est d'ajouter mon pc fixe (sous ubuntu) auprès de mon pc portable (sous gentoo) afin de pouvoir me connecter sur le gentoo sans devoir m'identifier.

Voici ce que je fais :

sur les deux pc :

```
cd

ssh-keygen + valider le nom du dossier par défaut + pas de passphrase
```

=> un RSA s'affiche, normal il me semble, ensuite un dossier .ssh est crée contenant mon id_rsa et id_rsa.pub entre autres.

envoi de mon id_rsa.pub d'ubuntu sur le gentoo par scp :

```
scp id_rsa.pub login@ipgentoo:.ssh/pub
```

renomme le pub en "authorized_keys", sur mon gentoo. Je précise que ce authorized_keys n'existe pas avant que je ne fasse cette manip (normal aussi il me semble)

```
mv pub authorizd_keys
```

maintenant, d'après ce que j'ai compris, mon gentoo a la clé publique de mon ubuntu, et je suis censé me connecter sur mon gentoo sans devoir entrer de mot de passe donc :

```
ssh login@ipgentoo
```

la réponse : 

 *Quote:*   

> Agent admitted failure to sign using the key.
> 
> Password: 

 

Pouvez-vous me dire où j'ai fait une erreur ?

Merci beaucoup  :Smile: 

EDIT : à quoi sert le passphrase ? est-il nécessaire à mon  niveau de l'utiliser ?

----------

## Axilatis

bon, j'ai trouvé il suffisait de faire : 

```
eval 'ssh-agent'
```

et

ssh-add id_rsa

sur mon pc ubuntu...

J'ai aucune idée de ce que ça fait, mais la connection ssh se fait sans mot de passe par la suite...

Sorry pour le topic inutile lol

----------

## geekounet

Tu peux au moins modifier le titre stp ?  :Wink: 

----------

## guilc

On va quand même mettre les choses au clair quand même  :Wink: 

Alors dans l'ordre :

1) une clé SSH sans passphrase, c'est le mal absolu. On lui met une passphrase, et on utilise un agent qui permettra de rentre la passphrase une seule fois par session. On parlera de l'agent ensuite. Accessoirement, avec une clé sans passphrase, pas besoin d'agent !

2) On ne copie pas ainsi la clé publique. On utilise ssh-copy-id. Il faut pour cela que l'agent soit configuré. ssh-copy-id va mettre la clé publique au bon endroit (~/.ssh/authorized_keys, sans l'écraser, mais en ajoutant à la suite des autres clés) et s'assure que les droits sont bons : ssh est assez strict sur les droits des fichiers contenu dans le ~/.ssh

3) L'agent ssh donc. Je rappelle que c'est inutile avec des clés sans passphrase (mais les clés sans passphrase c'est le mal absolu donc...)

L'agent se lance normalement au début de la session utilisateur. Il va permettre de rentrer une fois la passphrase au début, avec ssh-add (si on utilise la clé dans l'emplacement par défaut, inutile de préciser son nom). Il va ensuite déverrouiller l'utilisation de la clé ssh pour toute la durée de la session.

Avec ton "eval ssh-agent", tu as donc ouvert un shell bash avec une session ssh-agent. Ca va en login console, mais pas plus : si tu quittes le shell, tu perds l'agent. Si tu ouvre un deuxième shell, il ne partagera pas l'agent ! C'est donc limité.

C'est pour ça qu'en général, c'est la session X qui lance l'agent. Chacun a un peu sa sauce.

Pour une session kde par exemple, il y a ce qu'il faut (à dé-commenter) dans /etc/kde/startup/agent-startup.sh, et son pendant pour la fermeture de session (pas indispensable mais plus propre) dans /etc/kde/shutdown/agent-shutdown.sh

Gnome a son équivalent, mais n'utilisant pas, je sais pas ou ils l'ont collé  :Smile: 

Ainsi, l'agent sera disponible pour TOUS les shells de la session, pour le desktop (pour les kio de kde ou pour gvfs par exemple).

Il te suffit de rentrer UNE fois la passphrase de la clé SSH, et elle sera utilisable de manière transparente pour tout le reste de la session !

----------

## geekounet

Ya aussi simplement keychain pour partager les agents ssh et gpg entre shells et sessions.  :Wink: 

```
keychain --nogui --ignore-missing ~/.ssh/id_rsa

if [[ -f ~/.keychain/`hostname`-sh ]]; then

    . ~/.keychain/`hostname`-sh

fi

if [[ -f ~/.keychain/`hostname`-sh-gpg ]]; then

    . ~/.keychain/`hostname`-sh-gpg

fi
```

Ça dans le ~/.*shrc et c'est tranquille.  :Wink: 

----------

