Table des matières
- 2026:
- 2025:
4 billet(s) pour septembre 2026
| Notes HTTP Strict Transport Security - HSTS | 2026/09/18 11:04 | Jean-Baptiste |
| Notes GNU Linux GPU carte graphiques | 2026/09/08 15:49 | Jean-Baptiste |
| Notes GNU Linux graphique | 2026/09/08 15:42 | Jean-Baptiste |
| Notes urlencoding - passer des mots de passe en HTTPS | 2026/09/03 17:58 | Jean-Baptiste |
SSH-Agent
ssh à Jean
Connexion avec ssh-agent pour Connexion SSH, passphrase demandée qu'une seule fois
Lister les clefs connues
$ ssh-add -l Could not open a connection to your authentication agent.
Communication avec l'agent impossible ⇒ soit il n'est pas chargé, soit il y a un problème.
Pour forcer sa fermeture
$ ssh-agent -k SSH_AGENT_PID not set, cannot kill agent
Activation de l'agent ssh
$ eval $(ssh-agent -s) Agent pid 10449
Pour lister les clefs chargées
$ ssh-add -l The agent has no identities.
Pour charger la clef par défaut
$ ssh-add Enter passphrase for /home/jibe/.ssh/id_dsa: Identity added: /home/jibe/.ssh/id_dsa (/home/jibe/.ssh/id_dsa)
!! Plus aucune passphrase vous sera demandé pour vous connecter !
Plus vérouiller votre ssh-agent (plus de connexion sans passphrase)
$ ssh-add -x Enter lock password: Again: Agent locked.
Pour déverrouiller
$ ssh-add -X Enter lock password: Agent unlocked.
On regardes les clefs chargées
$ ssh-add -l 1024 c7:7e:ab:f1:f9:ed:a4:d0:81:ee:6b:d1:3f:b4:4f:ca /home/jibe/.ssh/id_dsa (DSA)
Ajout d'une 2em clef :
$ ssh-add ~/.ssh/id_rsa_clef2 Identity added: /home/jibe/.ssh/id_rsa_clef2 (rsa w/o comment)
On regarde de nouveau les clefs chargées
$ ssh-add -l 1024 c7:7e:ab:f1:f9:ed:a4:d0:81:ee:6b:d1:3f:b4:4f:ca /home/jibe/.ssh/id_dsa (DSA) 768 c1:8d:5a:00:23:87:c7:2f:8a:e3:9d:88:15:9d:eb:4c rsa w/o comment (RSA)
Faire oublier toutes les clefs
$ ssh-add -D All identities removed.
Fermer ssh-agent
$ eval $(ssh-agent -k) Agent pid 10449 killed
Variables SSH_AGENT_PID et SSH_AUTH_SOCK pas exportées
~/.bashrc
if [[ -z $SSH_AGENT_PID ]] then SSH_AGENT_PID="$(pgrep -n ssh-agent)" SSH_AUTH_SOCK="$(ls -1rt /tmp/ssh-*/agent.* | tail -1)" export SSH_AGENT_PID export SSH_AUTH_SOCK fi
On tente de lister les clefs connues
$ ssh-add -l Could not open a connection to your authentication agent
Pour ne saisir qu'une seule fois la passe-phrase à l'ouverture de la session console
~/.bashrc
ssh-add -l >/dev/null if [[ $? -eq 1 ]] then ssh-add fi
Exemple complète de conf
~/.bash_rc
pgrep ssh-agent >/dev/null if [[ $? -eq 1 ]] then eval $(ssh-agent -s) fi if [[ -z $SSH_AGENT_PID ]] then SSH_AGENT_PID="$(pgrep -n ssh-agent)" SSH_AUTH_SOCK="$(ls -1rt /tmp/ssh-*/agent.* | tail -1)" export SSH_AGENT_PID export SSH_AUTH_SOCK fi ssh-add -l >/dev/null if [[ $? -eq 1 ]] then ssh-add fi
Tunnel SSH proxy socks
Voir aussi : sshuttle
http://artisan.karma-lab.net/faire-passer-trafic-tunnel-ssh
ssh -D 1080 jb@mon_serveur
Notes clefs SSH
Création de la paire de clefs
Création de la paire de clefs par script
if [ ! -e ~/.ssh/id_rsa ] then ssh-keygen -q -N "" < /dev/zero fi
SSH Générer une clef publique à partir d'une clef privée
Create Public Key from Private
ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub
Emprunte (Fingerprint) de la clef SSH
ssh-keygen -lf ~/.ssh/id_rsa.pub ssh-keygen -E md5 -lf ~/.ssh/id_rsa.pub
Ou
ssh-add ~/.ssh/id_rsa_jbl2 ssh-add -l ssh-add -L | ssh-keygen -E md5 -lf -
Pour une clef pem générée via AWS (à partir de la clef privée)
openssl pkcs8 -in /home/jibe/.ssh/id_rsa_jbl2 -nocrypt -topk8 -outform DER | openssl sha1 -c
Pb
Pb userauth_pubkey: key type ssh-dss not in PubkeyAcceptedKeyTypes
Voir
/var/log/auth.log
Jan 23 22:40:37 server1 sshd[26567]: userauth_pubkey: key type ssh-dss not in PubkeyAcceptedKeyTypes [preauth]
/etc/ssh/sshd_config
PubkeyAcceptedKeyTypes=+ssh-dss
ssh-keygen -t ecdsa #ssh-keygen -t ecdsa -b 521
Err no mutual signature algorithm
$ ssh -v old-rhel5 ... debug1: send_pubkey_test: no mutual signature algorithm ...
Solution (contournement)
PubkeyAcceptedKeyTypes +ssh-rsa
~/.ssh/config
Host old-rhel5 Hostname 192.168.1.20 KexAlgorithms +diffie-hellman-group1-sha1,diffie-hellman-group14-sha1 HostKeyAlgorithms +ssh-rsa PubkeyAcceptedKeyTypes +ssh-rsa
ssh -R binds to 127.0.0.1 only on remote
Voir aussi :
A tester : GatewayPorts clientspecified
ssh -R "61027:db1.acme.local:61027" admin@app1.acme.local
Le binding n'est que sur 127.0.0.1
# ss -tlnp | grep 610
LISTEN 0 128 127.0.0.1:61027 0.0.0.0:* users:(("sshd",pid=3983617,fd=15))
Essayons
ssh -g -R "0.0.0.0:61027:db1.acme.local:61027" admin@app1.acme.local
Ca ne marche pas
Idem avec -o GatewayPorts=true
Sur notre machine en écoute sur 127.0.0.1:61027
ssh -g -L 61028:0.0.0.0:61027 localhost
Mais comme nous n'avons pas la clef SSH sur la cible nous faisons :
ssh -A -t admin@app1.acme.local ssh -g -L 61028:0.0.0.0:61027 admin@localhost
Et voilà :
# ss -tlnp | grep 610
LISTEN 0 128 127.0.0.1:61027 0.0.0.0:* users:(("sshd",pid=3983617,fd=15))
LISTEN 0 128 0.0.0.0:61028 0.0.0.0:* users:(("ssh",pid=3987404,fd=6))
Autres
Erreurs après un certain temps lors de la connexion
$ ssh -R "61027:db1.acme.local:61027" admin@app1.acme.local connect_to db1.acme.local port 61027: failed. connect_to db1.acme.local port 61027: failed. connect_to db1.acme.local port 61027: failed. connect_to db1.acme.local port 61027: failed.
SSH - l'homme du milieu man-in-the-middle attack - MITM
Voir http://www.phcomp.co.uk/Tutorials/Unix-And-Linux/ssh-check-server-fingerprint.html
/var/log/auth.log
Jan 13 18:08:07 ACME sshd[19573]: Invalid user from 10.227.01.32 Jan 13 18:08:07 ACME sshd[19573]: input_userauth_request: invalid user [preauth] Jan 13 18:08:07 ACME sshd[19573]: Failed none for invalid user from 10.227.01.32 port 38493 ssh2
Pb
Au début tout commence avec une connexion impossible et une erreur dans /var/log/auth.log Le nom de l'utilisateur n’apparaît pas.
Serveur
for file in *sa_key.pub do ssh-keygen -lf $file done
1024 82:45:ef:2d:a7:c1:38:30:64:3d:27:5f:07:2d:49:bb ssh_host_dsa_key.pub (DSA) 256 60:1d:11:ae:14:13:91:a6:d6:0c:0b:19:ff:ae:38:50 ssh_host_ecdsa_key.pub (ECDSA) 2048 42:51:fd:3f:d8:5e:ff:0f:7b:b4:ec:00:2b:4f:41:af ssh_host_rsa_key.pub (RSA)
Client
ssh localhost
The authenticity of host 'localhost (::1)' can't be established. ECDSA key fingerprint is 60:1d:11:ae:14:13:91:a6:d6:0c:0b:19:ff:ae:38:50. Are you sure you want to continue connecting (yes/no)?
~/.ssh/known_hosts
|1|L/bOL2nijC7tH8OmD3g4wDylRDk=|w2fAVJ4hqgexkcNn1kcQWkWJMwY= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBgwV9MaQTOLDDCtn0hRMZQN9398Z4ciwN+mCKN+ZQ47FgXO/ObM5JRUIdZ68th9whxhaGItdAXjFUTpxhUHgyk=
/etc/ssh/ssh_host_ecdsa_key.pub
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBgwV9MaQTOLDDCtn0hRMZQN9398Z4ciwN+mCKN+ZQ47FgXO/ObM5JRUIdZ68th9whxhaGItdAXjFUTpxhUHgyk= root@debian2
Avec WinScp
Sur le serveur
#ssh-keygen -E md5 -lf /etc/ssh/ssh_host_ed25519_key.pub awk '{print $2}' /etc/ssh/ssh_host_ed25519_key.pub | base64 -d | md5sum -b
3284028e26ac8b5eec88ce6d978d8e14 *-
Sur le client
Voir : winscp-mitm.png (
)
: info manquante
