====== SSH =======
===== Côté serveur =====
[[linux:ssh:sshd|Partie Serveur]]
===== Clés côté client =====
**Créer clés (ed25519 ici) :**
ssh-keygen -t ed25519
**Déployer clé publique :**
ssh-copy-id -i /home/user_local/.ssh/id_ed25519.pub user_remote@host_remote
**SSH Copy revient à :**
cat ~/.ssh/id_rsa.pub | ssh user_remote@host_remote "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
===== Configuration client =====
nano /etc/ssh/ssh_config
HashKnownHosts yes
Host *
ConnectTimeout 60
KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-ripemd160-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,hmac-ripemd160,umac-128@openssh.com
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
ServerAliveInterval 1800
ControlMaster auto
ControlPersist yes
ControlPath ~/.ssh/socket-%r@%h:%p
Permissions :
chmod 700 ~/.ssh/ #le dossier en lui-même
find ~/.ssh/ -type f -exec chmod 600 {} \; #les fichiers qu'il contient
===== Configuration spécifique des hôtes =====
nano ~/.ssh/config
Ajouter vos hôtes :
Host serveur1
ssh_option1
ssh_option2
ssh_option3
Host serveur2
ssh_option1
ssh_option2
Host *
ssh_option1
Par exemple :
Host www
HostName 192.168.1.201
Port 42022
User liandri
Host db
HostName 192.168.1.202
Port 42022
User liandri
Host *
User liandri
Protocol 2
Compression yes
IdentityFile ~/.ssh/id_ed25519
ServerAliveInterval 60
ServerAliveCountMax 30
LogLevel INFO
...
Permissions du fichier de configuration :
chmod 0700 ~/.ssh/config
Il suffit enfin de se connecter à l'aide de l'alias :
ssh www