Guides/Connexion-SSH.md
... ...
@@ -0,0 +1,145 @@
1
+Connexion SSH
2
+=============
3
+
4
+Depuis Le 9 janvier 2017, pour se connecter aux serveurs du ResEl, il est nécessaire d'utiliser
5
+des clés SSH. Ce guide couvre comment se connecter aux serveurs ResEl et quelques bonnes pratiques.
6
+
7
+À noter que je ne suis pas un expert en sécurité. J'essaie d'appliquer au mieux les bonnes pratiques que
8
+j'ai appris. N'hésitez pas à cross-checker les références et **à mettre à jour le wiki en conséquence**.
9
+Tout ce qui touche à la sécurité a une date d'expiration et qu'aucun algorithme est parfait.
10
+
11
+## Création de clé SSH
12
+
13
+Si vous êtes sur GNU+Linux, *BSD, ou autre système d'exploitation compatible, la commande à exécuter pour
14
+créer une clé SSH est la suivante :
15
+```bash
16
+ssh-keygen -t rsa -b 2048 -f ~/.ssh/id_rsa_resel -C "you@example.com"
17
+```
18
+où :
19
+
20
+* `-t rsa` est le type de clé à générer. À ce jour (janvier 2017) vous pouvez utiliser les
21
+clés `ecdsa`, `ed25519`, `rsa`. `dsa` est déconseillé.
22
+* `-b 2048` est la taille de la clé en bits. Pour du RSA, il n'est pas vraiment utile d'utiliser des clés plus grande que 2048 bits
23
+* `-f ~/.ssh/id_rsa_resel` est le fichier ou sera enregistré la clé
24
+
25
+Exécutez la commande et suivez les instructions (principalement choisissez un mot de passe pour chiffrer la clé). Vous
26
+découvrez donc deux fichiers `~/.ssh/id_rsa_resel` et `~/.ssh/id_rsa_resel.pub`. L'un est la clé privée et l'autre la
27
+clé publique. Ne partagez la clé privée avec personne, et gardez précieusement celle-ci sur votre ordinateur.
28
+
29
+## Certification de la clé
30
+
31
+Pour le moment, la certification des clés au ResEl est relativement manuelle. Celle-ci est faite à l'aide d'un [Playbook
32
+Ansible](https://git.resel.fr/confs/ansible) qui va envoyer les clés depuis le [LDAP](https://wiki.resel.fr/Services/LDAP)
33
+sur les passerelles et les différents serveurs.
34
+
35
+Vous devez donc envoyer votre clé publique par e-mail **signé cryptographiquement** à l'adresse [president@resel.fr](mailto:president@resel.fr). Bien évidement le président de l'association doit avoir confiance en votre clé GPG. Attention :
36
+envoyez la clé dans le corps du message et non en pièce jointe, celles-ci n'étant pas signées.
37
+
38
+
39
+## Connexion aux serveurs du ResEl
40
+
41
+Une fois que le président ait validé votre clé puis enregistré celles-ci sur les passerelles, vous pouvez vous connecter
42
+sur celles-ci.
43
+La méthode la plus manuelle est :
44
+```bash
45
+ssh -i ~/.ssh/id_rsa_resel username@pegase.adm-pub.resel.fr # pour Pegase
46
+ssh -i ~/.ssh/id_rsa_resel username@resel.fr # pour Yoshi
47
+```
48
+Si tout se passe bien vous êtes désormais connecté sur les passerelles.
49
+
50
+
51
+## Configurer OpenSSH pour se simplifier la vie
52
+
53
+C'est bien pratique de taper des commandes à rallonge, mais c'est plus simple quand on se connecte en 3 caractères !
54
+
55
+Je vous propose donc une petite configuration OpenSSH (pratiquement la mienne) qui vous fera économiser plein de
56
+caractères. Celle-ci se trouve dans le fichier `~/.ssh.config` que vous aurez très certainement à creer.
57
+
58
+```
59
+# Configuration des passerelles ResEl
60
+host pegase yoshi fronsac
61
+ IdentityFile ~/.ssh/id_rsa_resel # Spécifie la clé à utiliser
62
+ User lcarr # nom d'utilisateur sur la machine distante
63
+ ForwardAgent yes # Active l'Agent Fowarding
64
+ IdentitiesOnly yes # Interdit la connexion par mot de passe
65
+
66
+
67
+# Raccourcis
68
+Host pegase
69
+ Hostname pegase.adm-pub.resel.fr
70
+
71
+Host yoshi
72
+ Hostname resel.fr
73
+
74
+Host fronsac
75
+ Hostname rennes.resel.fr
76
+
77
+# Proxy SSH pour gagner du temps (ne fonctionne que dans le ResEl)
78
+Host *.adm
79
+ ProxyCommand ssh pegase nc %h %p 2> /dev/null
80
+ User lcarr
81
+
82
+```
83
+
84
+Ainsi avec ce fichier de configuration il est possible de se connecter aux passerelles avec les commandes suivantes :
85
+```
86
+ssh pegase # Passerelle interne
87
+ssh yoshi # Passerelle externe
88
+ssh fronsac # Passerelle de Rennes
89
+```
90
+
91
+D'autres raccourcis grâce à ce fichier pour se connecter aux machines directement
92
+```
93
+ssh skynet.adm # Passe automatiquement par Pegase
94
+ssh alphabet # Pareil
95
+```
96
+
97
+## L'agent SSH
98
+
99
+Si vous désirez utiliser exclusivement des clés SSH sur les serveurs du ResEl et éviter de taper votre mot de passe
100
+à tout bout de champ vous pouvez utiliser un agent ssh.
101
+
102
+Copiez ces lignes dans votre fichier `~/.bash_profile` ou `~/.zshrc` [(en remerciant Joseph M. Reagle Jr.)](https://www.cygwin.com/ml/cygwin/2001-06/msg00537.html) :
103
+```bash
104
+SSH_ENV="$HOME/.ssh/environment"
105
+
106
+function start_agent {
107
+ echo "Initialising new SSH agent..."
108
+ /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
109
+ echo succeeded
110
+ chmod 600 "${SSH_ENV}"
111
+ . "${SSH_ENV}" > /dev/null
112
+ /usr/bin/ssh-add;
113
+}
114
+
115
+# Source SSH settings, if applicable
116
+
117
+if [ -f "${SSH_ENV}" ]; then
118
+ . "${SSH_ENV}" > /dev/null
119
+ #ps ${SSH_AGENT_PID} doesn't work under cywgin
120
+ ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
121
+ start_agent;
122
+ }
123
+else
124
+ start_agent;
125
+fi
126
+```
127
+
128
+Vous devrez ensuite ajouter votre clé à l'agent, à l'aide de la commande suivante :
129
+```
130
+ssh-add ~/.ssh/id_rsa_resel
131
+```
132
+
133
+
134
+## Références
135
+* [Bonnes pratiques SSH](https://blog.0xbadc0de.be/archives/300)
136
+* [Tutoriel sur les certificats SSH](https://ef.gy/hardening-ssh)
137
+* [Guide pour l'agent Fowarding](http://mah.everybody.org/docs/ssh)
138
+* [Autre guide plus concis](https://developer.github.com/guides/using-ssh-agent-forwarding/)
139
+* [Illustration de l'Agent Fowarding (en dessins)](http://www.unixwiz.net/techtips/ssh-agent-forwarding.html)
140
+* [Notes sur les tailles de clés (2013)](https://danielpocock.com/rsa-key-sizes-2048-or-4096-bits)
141
+
142
+---
143
+
144
+## TODO (rédacteur)
145
+* nada :p
... ...
\ No newline at end of file
Guides/SSH-Agent.md
... ...
@@ -1,145 +0,0 @@
1
-Connexion SSH
2
-=============
3
-
4
-Depuis Le 9 janvier 2017, pour se connecter aux serveurs du ResEl, il est nécessaire d'utiliser
5
-des clés SSH. Ce guide couvre comment se connecter aux serveurs ResEl et quelques bonnes pratiques.
6
-
7
-À noter que je ne suis pas un expert en sécurité. J'essaie d'appliquer au mieux les bonnes pratiques que
8
-j'ai appris. N'hésitez pas à cross-checker les références et **à mettre à jour le wiki en conséquence**.
9
-Tout ce qui touche à la sécurité a une date d'expiration et qu'aucun algorithme est parfait.
10
-
11
-## Création de clé SSH
12
-
13
-Si vous êtes sur GNU+Linux, *BSD, ou autre système d'exploitation compatible, la commande à exécuter pour
14
-créer une clé SSH est la suivante :
15
-```bash
16
-ssh-keygen -t rsa -b 2048 -f ~/.ssh/id_rsa_resel -C "you@example.com"
17
-```
18
-où :
19
-
20
-* `-t rsa` est le type de clé à générer. À ce jour (janvier 2017) vous pouvez utiliser les
21
-clés `ecdsa`, `ed25519`, `rsa`. `dsa` est déconseillé.
22
-* `-b 2048` est la taille de la clé en bits. Pour du RSA, il n'est pas vraiment utile d'utiliser des clés plus grande que 2048 bits
23
-* `-f ~/.ssh/id_rsa_resel` est le fichier ou sera enregistré la clé
24
-
25
-Exécutez la commande et suivez les instructions (principalement choisissez un mot de passe pour chiffrer la clé). Vous
26
-découvrez donc deux fichiers `~/.ssh/id_rsa_resel` et `~/.ssh/id_rsa_resel.pub`. L'un est la clé privée et l'autre la
27
-clé publique. Ne partagez la clé privée avec personne, et gardez précieusement celle-ci sur votre ordinateur.
28
-
29
-## Certification de la clé
30
-
31
-Pour le moment, la certification des clés au ResEl est relativement manuelle. Celle-ci est faite à l'aide d'un [Playbook
32
-Ansible](https://git.resel.fr/confs/ansible) qui va envoyer les clés depuis le [LDAP](https://wiki.resel.fr/Services/LDAP)
33
-sur les passerelles et les différents serveurs.
34
-
35
-Vous devez donc envoyer votre clé publique par e-mail **signé cryptographiquement** à l'adresse [president@resel.fr](mailto:president@resel.fr). Bien évidement le président de l'association doit avoir confiance en votre clé GPG. Attention :
36
-envoyez la clé dans le corps du message et non en pièce jointe, celles-ci n'étant pas signées.
37
-
38
-
39
-## Connexion aux serveurs du ResEl
40
-
41
-Une fois que le président ait validé votre clé puis enregistré celles-ci sur les passerelles, vous pouvez vous connecter
42
-sur celles-ci.
43
-La méthode la plus manuelle est :
44
-```bash
45
-ssh -i ~/.ssh/id_rsa_resel username@pegase.adm-pub.resel.fr # pour Pegase
46
-ssh -i ~/.ssh/id_rsa_resel username@resel.fr # pour Yoshi
47
-```
48
-Si tout se passe bien vous êtes désormais connecté sur les passerelles.
49
-
50
-
51
-## Configurer OpenSSH pour se simplifier la vie
52
-
53
-C'est bien pratique de taper des commandes à rallonge, mais c'est plus simple quand on se connecte en 3 caractères !
54
-
55
-Je vous propose donc une petite configuration OpenSSH (pratiquement la mienne) qui vous fera économiser plein de
56
-caractères. Celle-ci se trouve dans le fichier `~/.ssh.config` que vous aurez très certainement à creer.
57
-
58
-```
59
-# Configuration des passerelles ResEl
60
-host pegase yoshi fronsac
61
- IdentityFile ~/.ssh/id_rsa_resel # Spécifie la clé à utiliser
62
- User lcarr # nom d'utilisateur sur la machine distante
63
- ForwardAgent yes # Active l'Agent Fowarding
64
- IdentitiesOnly yes # Interdit la connexion par mot de passe
65
-
66
-
67
-# Raccourcis
68
-Host pegase
69
- Hostname pegase.adm-pub.resel.fr
70
-
71
-Host yoshi
72
- Hostname resel.fr
73
-
74
-Host fronsac
75
- Hostname rennes.resel.fr
76
-
77
-# Proxy SSH pour gagner du temps (ne fonctionne que dans le ResEl)
78
-Host *.adm
79
- ProxyCommand ssh pegase nc %h %p 2> /dev/null
80
- User lcarr
81
-
82
-```
83
-
84
-Ainsi avec ce fichier de configuration il est possible de se connecter aux passerelles avec les commandes suivantes :
85
-```
86
-ssh pegase # Passerelle interne
87
-ssh yoshi # Passerelle externe
88
-ssh fronsac # Passerelle de Rennes
89
-```
90
-
91
-D'autres raccourcis grâce à ce fichier pour se connecter aux machines directement
92
-```
93
-ssh skynet.adm # Passe automatiquement par Pegase
94
-ssh alphabet # Pareil
95
-```
96
-
97
-## L'agent SSH
98
-
99
-Si vous désirez utiliser exclusivement des clés SSH sur les serveurs du ResEl et éviter de taper votre mot de passe
100
-à tout bout de champ vous pouvez utiliser un agent ssh.
101
-
102
-Copiez ces lignes dans votre fichier `~/.bash_profile` ou `~/.zshrc` [(en remerciant Joseph M. Reagle Jr.)](https://www.cygwin.com/ml/cygwin/2001-06/msg00537.html) :
103
-```bash
104
-SSH_ENV="$HOME/.ssh/environment"
105
-
106
-function start_agent {
107
- echo "Initialising new SSH agent..."
108
- /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
109
- echo succeeded
110
- chmod 600 "${SSH_ENV}"
111
- . "${SSH_ENV}" > /dev/null
112
- /usr/bin/ssh-add;
113
-}
114
-
115
-# Source SSH settings, if applicable
116
-
117
-if [ -f "${SSH_ENV}" ]; then
118
- . "${SSH_ENV}" > /dev/null
119
- #ps ${SSH_AGENT_PID} doesn't work under cywgin
120
- ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
121
- start_agent;
122
- }
123
-else
124
- start_agent;
125
-fi
126
-```
127
-
128
-Vous devrez ensuite ajouter votre clé à l'agent, à l'aide de la commande suivante :
129
-```
130
-ssh-add ~/.ssh/id_rsa_resel
131
-```
132
-
133
-
134
-## Références
135
-* [Bonnes pratiques SSH](https://blog.0xbadc0de.be/archives/300)
136
-* [Tutoriel sur les certificats SSH](https://ef.gy/hardening-ssh)
137
-* [Guide pour l'agent Fowarding](http://mah.everybody.org/docs/ssh)
138
-* [Autre guide plus concis](https://developer.github.com/guides/using-ssh-agent-forwarding/)
139
-* [Illustration de l'Agent Fowarding (en dessins)](http://www.unixwiz.net/techtips/ssh-agent-forwarding.html)
140
-* [Notes sur les tailles de clés (2013)](https://danielpocock.com/rsa-key-sizes-2048-or-4096-bits)
141
-
142
----
143
-
144
-## TODO (rédacteur)
145
-* nada :p
... ...
\ No newline at end of file