Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:reseau:ssh:client [07/01/2014 22:18] bendia |
doc:reseau:ssh:client [01/04/2014 12:25] bendia |
||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
* Commentaires : //Administrer son serveur à distance, établir un tunnel sécurisé pour relayer des ports, etc... // | * Commentaires : //Administrer son serveur à distance, établir un tunnel sécurisé pour relayer des ports, etc... // | ||
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
- | * Suivi : {{tag>en-chantier}} | + | * Suivi : {{tag> à-compléter à-tester}} |
* Création par <vous> <date> | * Création par <vous> <date> | ||
* Testé par <...> le <...> | * Testé par <...> le <...> | ||
* Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=1583 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | * Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=1583 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
- | === Nota === | + | **Nota :** |
Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! | Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! | ||
Ligne 60: | Ligne 60: | ||
==== Authentification ==== | ==== Authentification ==== | ||
- | === Par nom d'utilisateur/mot de passe | + | === Par nom d'utilisateur/mot de passe === |
Le nom d'utilisateur est spécifié dans la commande de connexion. Le serveur nous demande alors notre mot de passe pour nous connecter, de la même façon que sur une machine locale | Le nom d'utilisateur est spécifié dans la commande de connexion. Le serveur nous demande alors notre mot de passe pour nous connecter, de la même façon que sur une machine locale | ||
Ligne 95: | Ligne 95: | ||
Notez qu'on peut égalementcopier sur la clé usb le fichier contenant la clé publique du client ''~/.ssh/id_rsa.pub'', puis copier-coller le contenu de ce fichier dans le fichier ''~/.ssh/authorized_keys'' qui se trouve sur le serveur. | Notez qu'on peut égalementcopier sur la clé usb le fichier contenant la clé publique du client ''~/.ssh/id_rsa.pub'', puis copier-coller le contenu de ce fichier dans le fichier ''~/.ssh/authorized_keys'' qui se trouve sur le serveur. | ||
- | A présent, lors de votre connexion, seule votre éventuelle //passphrase// iniqué lors de la génération de la clé vous sera demandé, mais plus votre mot de passe. | + | Il vous faut indiquer la clé à utiliser dans la commande de connexion |
+ | |||
+ | <code user>ssh -i ~/.ssh/id_dsa user@192.168.x.x</code> | ||
+ | |||
+ | A présent, lors de votre connexion, seule votre éventuelle //passphrase// indiqué lors de la génération de la clé vous sera demandé, mais plus votre mot de passe. | ||
+ | |||
+ | <note>Pour éviter de taper toute cette commande, il faut renseigner le fichier //~/.ssh/config// comme indiqué [[doc:reseau:ssh:client#configuration|plus bas]]</note> | ||
+ | |||
+ | == ssh-agent == | ||
+ | |||
+ | Afin d'éviter de retaper votre //passphrase// à chaque connexion, vous pouvez utiliser //ssh-agent//. Il doit être invoqué au début de votre session de la façon suivante avec un //shell bourne// (comme //bash//) | ||
+ | |||
+ | <code user>eval `ssh-agent -s`</code> | ||
+ | |||
+ | et comme cela avec un //shell C// | ||
+ | |||
+ | <code user>eval `ssh-agent -c`</code> | ||
+ | |||
+ | Il suffit ensuite d'indiquer la clé à utiliser grâce à la commande //ssh-add// | ||
+ | |||
+ | <code user>ssh-add $cle_privee</code> | ||
+ | |||
+ | <note>Sans l'argument //$clee_privee//, //ssh-add// ajoute les clés suivantes //~/.ssh/id_rsa, ~/.ssh/id_dsa, ~/.ssh/id_ecdsa and ~/.ssh/identity// </note> | ||
+ | |||
+ | Pour lister les clés ajoutées | ||
+ | |||
+ | <code user>ssh-add -l</code> | ||
+ | |||
+ | Pour supprimer toutes les clés enregistrée | ||
+ | |||
+ | <code user>ssh-add -D</code> | ||
+ | |||
+ | <note important>Ce système ne fonctionne que pour une seule session. Ainsi, si vous fermer votre session (ou votre émulateur de terminal), votre //passphrase// vous sera à nouveau demandé. Pour garder une trace de cet enregistrement, il faut utiliser //keychain//</note> | ||
+ | |||
+ | == keychain == | ||
+ | |||
+ | __Installation__ | ||
+ | |||
+ | <code root>apt-get install keychain</code> | ||
+ | |||
+ | __configuration__ | ||
+ | |||
+ | Il faut appeler le script. Dans votre fichier //~/.basrc// ou //~/.bash_profile// ajoutez (en remplaçant $cle_privee par le nom de votre clé) | ||
+ | |||
+ | <code bash>########################################################################### | ||
+ | # allow $USER to use keys. Only enter once and it will remain enabled till | ||
+ | # you delete it or reboot the server | ||
+ | ########################################################################### | ||
+ | /usr/bin/keychain $HOME/.ssh/$cle_privee | ||
+ | source $HOME/.keychain/$HOSTNAME-sh | ||
+ | </code> | ||
+ | |||
+ | <note tip>Si votre but est uniquement de permettre à des scripts (lancés par //cron// par exemple) de se connecter en //ssh// en interdisant une connexion manuelle sans //passphrase//, il faut utiliser le code suivant | ||
+ | <code bash>##################################################################################### | ||
+ | ### The --clear option make sure Intruder cannot use your existing SSH-Agents keys | ||
+ | ### i.e. Only allow cron jobs to use password less login | ||
+ | ##################################################################################### | ||
+ | /usr/bin/keychain --clear $HOME/.ssh/id_rsa | ||
+ | source $HOME/.keychain/$HOSTNAME-sh</code> | ||
+ | |||
+ | Source : http://www.cyberciti.biz/faq/ubuntu-debian-linux-server-install-keychain-apt-get-command | ||
+ | </note> | ||
+ | |||
+ | |||
+ | |||
- | === ssh-agent === | ||
- | FIXME | ||
=== Navigation via SSH === | === Navigation via SSH === | ||
Ligne 126: | Ligne 189: | ||
*5900 : port du service distant | *5900 : port du service distant | ||
*user@80.80.80.80 : indique avec quelle user et sur quelle ip on va établir la connection. | *user@80.80.80.80 : indique avec quelle user et sur quelle ip on va établir la connection. | ||
- | |||
- | === Rediriger un port local vers un port distant === | ||
- | |||
- | FIXME | ||
- | |||
- | === Rediriger un port distant vers un port local === | ||
- | |||
- | FIXME | ||
==== Configuration ==== | ==== Configuration ==== | ||
Ligne 153: | Ligne 208: | ||
<note>Dans le même fichier de configuration, vous pouvez ajouter plusieurs //alias// comme celui-ci.</note> | <note>Dans le même fichier de configuration, vous pouvez ajouter plusieurs //alias// comme celui-ci.</note> | ||
+ | |||
+ | Host ServeurA | ||
+ | IdentityFile ~/.ssh/cleA | ||
+ | Host ServeurB | ||
+ | IdentityFile ~/.ssh/cleB | ||
+ | |||
+ | |||
Pour une liste de toutes les options disponibles, et il y en a... //une floppée// ! Tapez : | Pour une liste de toutes les options disponibles, et il y en a... //une floppée// ! Tapez : | ||
<code user>man ssh_config</code> | <code user>man ssh_config</code> | ||
Ligne 192: | Ligne 254: | ||
* Pour ''COPIER'' un fichier sécurisé vous devez vous servir de : [[:doc:reseau:scp|SCP]] | * Pour ''COPIER'' un fichier sécurisé vous devez vous servir de : [[:doc:reseau:scp|SCP]] | ||
- | * Pour ''MONTER'' les fichiers servez-vous de : [[:doc:reseau:sshfs|SSHFS]] | + | * Pour ''MONTER'' les fichiers servez-vous de : [[:doc:reseau:ssh:sshfs|SSHFS]] |
* Utiliser ssh comme un serveur de fichiers : [[:doc:reseau:sftp | sftp installation et configuration]] | * Utiliser ssh comme un serveur de fichiers : [[:doc:reseau:sftp | sftp installation et configuration]] | ||