# Créer des clés SSH dans Windows et WSL Créer les clés dans l'invite de commande: ``` C:\Users\enzo2> ssh-keygen ``` Crée un dossier `.ssh` contenant les clés publique/privée On copie la clé publique sur le serveur: ``` C:\Users\bruno\Desktop> type C:\Users\bruno\.ssh\id_rsa.pub | ssh -p42666 bruno@192.168.1.7 'cat >> .ssh/authorized_keys' ** ne marche pas ** ``` Copier les clés dans wsl: ``` cp -r /mnt/c/Users/bruno/.ssh ~/.ssh ``` ou créer des liens symboliques: ``` > ln -s /mnt/c/Users/bruno/.ssh/id_rsa ~/.ssh/id_rsa > ln -s /mnt/c/Users/bruno/.ssh/id_rsa.pub ~/.ssh/id_rsa.pub > ln -s /mnt/c/Users/bruno/.ssh ~/.ssh ``` Dans wsl, fixer les permissions: ```bash $ cd ~/.ssh $ chmod 600 id_rsa $ chmod 644 id_rsa.pub $ chmod 644 known_hosts $ cd ~ $ chmod 700 .ssh ``` On se connecte au serveur avec le mdp: ```bash $ ssh -p42666 bruno@192.168.1.7 bruno@192.168.1.7's password: bruno@DS916:~ $ bruno@DS916:~ $ exit ``` On copie la clé publique sur le serveur: ```bash $ cd ~/.ssh $ cat id_rsa.pub | ssh -p42666 bruno@192.168.1.7 'cat>> ~/.ssh/authorized_keys' $ cat id_rsa.pub | ssh funnymac@ftp.cluster011.ovh.net 'cat>> ~/.ssh/authorized_keys' ``` On se connecte enfin au serveur avec la clé: ```bash $ ssh -p42666 bruno@192.168.1.7 Enter passphrase for key '/home/enzo2/.ssh/id_rsa' bruno@DS916:~ $ ``` On installe **keychain**: ```bash $ sudo apt install keychain ``` puis pour Bash: ajouter au fichier `~/.bashrc` ```bash eval `keychain --eval --agents ssh id_rsa` ``` pour Zsh: ajouter au fichier `.zshrc` ```bash eval `keychain --eval --agents ssh id_rsa` ``` ou ajouter au fichier .zshrc ```bash function check_ssh { [[ $3 =~ '\bssh\b' ]] || return [[ -n "$SSH_AGENT_PID" && -e "/proc/$SSH_AGENT_PID" ]] \ && ssh-add -l >/dev/null && return eval `keychain --eval id_dsa --timeout 60` } autoload -U add-zsh-hook add-zsh-hook preexec check_ssh ``` https://unix.stackexchange.com/a/532477