ce7c8c30b38b308b610e24e8099f056f29fd5f6e
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 |