# Mise en place d'une connexion SSH via clé RSA

##### 🧰 Prérequis

- <span style="white-space: pre-wrap;">Un serveur </span>****Apache Guacamole****<span style="white-space: pre-wrap;"> opérationnel</span>
- Une machine cible avec un serveur SSH actif
- <span style="white-space: pre-wrap;">Une </span>****clé RSA****<span style="white-space: pre-wrap;"> (privée + publique)</span>
- Un utilisateur SSH valide sur la machine cible

##### 🛠️ 1. Génération d’une clé RSA

Sur la machine qui initie la connexion (par ex. Guacamole) :

```
ssh-keygen -t rsa -b 4096 -m PEM -f ~/.ssh/guac_key
```

<span style="white-space: pre-wrap;">✅ Option </span>`<span class="editor-theme-code">-m PEM</span>`<span style="white-space: pre-wrap;"> nécessaire : Guacamole n'accepte pas le format OpenSSH.</span>

- `<span class="editor-theme-code">guac_key</span>`<span style="white-space: pre-wrap;"> : clé </span>****privée****<span style="white-space: pre-wrap;"> (à coller dans Guacamole)</span>
- `<span class="editor-theme-code">guac_key.pub</span>`<span style="white-space: pre-wrap;"> : clé </span>****publique****<span style="white-space: pre-wrap;"> (à mettre sur la machine cible)</span>
- ****Ne mettez pas de passphrase****<span style="white-space: pre-wrap;"> pour éviter des problèmes</span>

##### 📤 2. Déploiement de la clé publique

****Sur le serveur (où se trouve sshd) :****

```
mkdir -p ~/.ssh
chmod 700 ~/.ssh

cat guac_key.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
```

##### ⚙️ 3. Ajustement du serveur SSH (si nécessaire)

<span style="white-space: pre-wrap;">Certaines distros récentes désactivent </span>`<span class="editor-theme-code">ssh-rsa</span>`<span style="white-space: pre-wrap;"> par défaut.</span>

<span style="white-space: pre-wrap;">Modifier </span>`<span class="editor-theme-code">/etc/ssh/sshd_config</span>`<span style="white-space: pre-wrap;"> et ajouter :</span>

```
PubkeyAcceptedAlgorithms +ssh-rsa
HostKeyAlgorithms +ssh-rsa
```

Puis redémarrer le service SSH :

```
sudo systemctl restart sshd
```

##### 🖥️ 4. Configuration dans l’interface Guacamole

1. <span style="white-space: pre-wrap;">Aller dans </span>****Connexions****<span style="white-space: pre-wrap;"> → </span>****Nouvelle connexion****
2. <span style="white-space: pre-wrap;">Choisir le </span>****protocole SSH****
3. Remplir les champs suivants :
    - ****Nom d’hôte****<span style="white-space: pre-wrap;"> : IP ou domaine de la cible</span>
    - ****Port****<span style="white-space: pre-wrap;"> : généralement </span>`<span class="editor-theme-code">22</span>`
    - ****Nom d’utilisateur****<span style="white-space: pre-wrap;"> : ex. </span>`<span class="editor-theme-code">root</span>`
    - ****Clé privée****<span style="white-space: pre-wrap;"> : coller le contenu du fichier </span>`<span class="editor-theme-code">guac_key</span>`
    - ****Phrase de passe****<span style="white-space: pre-wrap;"> : laisser vide (si clé sans mot de passe)</span>

##### ✅ 5. Tester la connexion

Cliquez sur la connexion SSH : si tout est bien configuré, le terminal s’ouvre depuis le navigateur.

##### 🐞 Dépannage : "Public key authentication failed"

<span style="white-space: pre-wrap;">Si l’erreur suivante apparaît dans les logs </span>`<span class="editor-theme-code">guacd</span>`<span style="white-space: pre-wrap;"> :</span>

```
Public key authentication failed: Username/PublicKey combination invalid
```

Vérifications à faire :

- <span style="white-space: pre-wrap;">Clé privée au format </span>****PEM****
- <span style="white-space: pre-wrap;">Clé publique bien dans </span>`<span class="editor-theme-code">~/.ssh/authorized_keys</span>`
- <span style="white-space: pre-wrap;">Fichier </span>`<span class="editor-theme-code">sshd_config</span>`<span style="white-space: pre-wrap;"> contient :</span>

```nginx
PubkeyAcceptedAlgorithms +ssh-rsa
HostKeyAlgorithms +ssh-rsa
```

- Permissions correctes :
    - `<span class="editor-theme-code">~/.ssh</span>`<span style="white-space: pre-wrap;"> → </span>`<span class="editor-theme-code">700</span>`
    - `<span class="editor-theme-code">~/.ssh/authorized_keys</span>`<span style="white-space: pre-wrap;"> → </span>`<span class="editor-theme-code">600</span>`

##### 📌 Astuce

Pour suivre les logs en direct :

```
journalctl -u guacd -f
```

---

<p class="callout info"><span style="white-space: pre-wrap;">Source : 🔗 </span>[Documentation Guacamole](https://guacamole.apache.org/doc/gug/)<span style="white-space: pre-wrap;"> 🔗 </span>[Manuel OpenSSH](#bkmrk-source-%3A-%F0%9F%94%97-documenta)</p>