Le TwiBlog

The one with Twidi

Aller au contenu | Aller au menu | Aller à la recherche

lundi 5 octobre 2009

Connexion linux/ubuntu avec passphrase ssh (pam-ssh), suite

Les nouvelles version de libpam-ssh (1.92.6 pour moi, sous Ubuntu 09-10 Karmic) ne fonctionnent plus de la même façon que celle décrite dans le précédent billet que j'avais écrit sur le sujet.

Maintenant, la ou les clés valides doivent être présentes dans le répertoire .ssh/login-keys.d :

ln -s  ~/.ssh/id_rsa ~/.ssh/login-keys.d/

Quant aux options dans le répertoire /etc/pam.d/, elles changent.

Tout d'abord, plus de fichier pam-ssh-* (ni ssh-* pour les versions intermédiaires).

Puis dans le fichier /etc/pam.d/common-auth, il faut mettre, avant la première ligne commençant par auth :

 auth sufficient pam_ssh.so try_first_pass

Et enfin dans le fichier /etc/pam.d/common-password, il faut mettre, avant la première ligne commençant par password :

session optional pam_ssh.so

Et voilà, cela fonctionne comme avant

lundi 2 juillet 2007

ssh sur un autre port : quelles options pour scp et rsync

Si jamais votre serveur ssh écoute sur un autre port que son classique port 22, il faudra l'indiquer aux autres programmes utilisant ssh, comme scp et rsync

Voici les options à utiliser :

ssh : -p PORT

scp : -P PORT (notez le P majuscule)

rsync : -e 'ssh -p PORT'

Comment reprendre une copie scp interrompue (comme un wget --continue) : rsync --partial

Imaginez que vous soyez en train de récupérer un fichier via scp

Typiquement:

scp user@host:/path/to/the/file .

Et là, à 95%, c'est le drame. Pour une raison inconnue le réseau tombe et la connexion ssh utilisée par scp se coupe.

Comme tout le monde, vous cherchez dans le man scp l'option qui, comme pour wget, permet de reprendre un téléchargement là ou il en était. Mais non, rien, pas de --continue ou autre option équivalente. A priori c'est reparti pour le téléchargement du fichier en entier.

Et non ! C'est là que rsync nous sauve la vie, grâce à son option --partial

Voici la commande :

rsync --partial user@host:/path/to/the/file .

(Commande à relancer plusieurs fois si nécessaire)

samedi 26 mai 2007

Utiliser "ssh-copy-id" vers une machine où ssh tourne ailleurs que sur le port 22

ssh-copy-id est un script qui permet de copier sa clé publique sur une machine distante, et ainsi pouvoir se connecter à cette machine en ssh avec sa clé et non le mot de passe (et ainsi ne plus avoir besoin de s'identifier à chaque fois, grâce à ssh-add ou pam-ssh)

En tant que script, il permet d'éviter la copie à la main du fichier nécessaire.

Mais en tant que script, il n'est pas prévu énormément d'option, et notamment pas la possibilité de spécifier le port sur lequel tourne ssh sur la machine distante.

En jetant un oeil au script j'ai néanmoins trouver comment faire :

ssh-copy-id -i CLE_PUBLIQUE "-p PORT SERVEUR"

Remplacer

  • CLE_publique par le fichier de votre clé publique, par exemple ~/.ssh/id_rsa.pub
  • PORT par le port sur lequel ssh tourne sur la machine distante
  • SERVEUR l'ip ou le nom de la machine distante

Dans l'idéal on n'aurait pas à saisir l'option -i (fichier de la clé publique) mais c'est impératif si on veut pouvoir utiliser la bidouille "-p PORT SERVEUR"

Connexion linux/ubuntu avec passphrase ssh (pam-ssh)

Un petit billet pour expliquer comment se logguer dans sa session ubuntu avec sa passphrase ssh au lieu de son mot de passe classique.

L'avantage principal est notamment de valier votre passphrase ssh et ainsi pouvoir vous logguer sur tout compte ssh autorisé sans saisir votre passphrase à nouveau, ni lancer un ssh-add.

Dans le meilleur des cas vous économisez une saisie de mot de passe : on le fait au début une fois pour toute.

Voici les étapes à suivre :

1) Installer pam-ssh :

sudo aptitude install libpam-ssh

2) Créer une clé ssh si vous n'en avez pas déjà une (je pense que si vous lisez ce topic, vous l'avez déjà)

ssh-keygen

3) Modifier la séquence de validation du login.

Ci-dessous, remplacez $EDITOR par votre éditeur texte favori, ou faîtes un

export EDITOR=votre_editeur_favori

Il faut donc modifier deux fichiers lié à pam :

sudo $EDITOR /etc/pam.d/common-auth

Avant la première ligne commençant par "auth", ajouter

@include pam-ssh-auth

Puis :

sudo $EDITOR /etc/pam.d/common-password

Avant la première ligne commençant par "password", ajouter

@include pam-ssh-session

Vous pourrez toujours vous logguer avec votre mot de passe, dans quel cas il vous faudra saisir ultérieurement votre passphrase ssh en cas de besoin.

Note : si vous vérouillez votre session, pour revenir, tapez également votre clé ssh.