IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ubuntu Discussion :

Identification SFTP par clé publique


Sujet :

Ubuntu

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut Identification SFTP par clé publique
    Bonjour,
    je viens d'installer mon serveur SSH et ma librairie libssh2 pour PHP, tout fonctionne.
    J'ai essayé d'utiliser les fonctions SFTP du php.net mais lorsque je souhaite me connecter au serveur SSH avec une clé public il échoue.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $connection = ssh2_connect('127.0.0.1', 22);
     
    if (ssh2_auth_pubkey_file($connection, 'david',
                              '/home/david/.ssh/id_rsa.pub',
                              '/home/david/.ssh/id_rsa')) {
      echo "Public Key Authentication Successful\n";
    } else {
      die('Public Key Authentication Failed');
    }
     
    //Retour : Warning: ssh2_auth_pubkey_file(): Authentication failed for david using public key
    Je précise que lorsque je me connecte avec identifiant et mot de passe c'est OK
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssh2_auth_password($connection, 'david', 'monMDPdeMonPC')
    Le problème doit provenir de la config de SSH mais je ne sais pas trop se qu'il faut modifier. Le fichier en question est /etc/ssh/shhd_config ?
    Pour la génération des mes clés j'ai utilisé le tuto http://blog.cheztoi.net/2009/09/08/m...sh-sur-ubuntu/ avec comme identifiant david et comme passphrase rien.

    Merci pour votre aide

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Citation Envoyé par Général03 Voir le message
    Bonjour,
    je viens d'installer mon serveur SSH et ma librairie libssh2 pour PHP, tout fonctionne.
    J'ai essayé d'utiliser les fonctions SFTP du php.net mais lorsque je souhaite me connecter au serveur SSH avec une clé public il échoue.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $connection = ssh2_connect('127.0.0.1', 22);
     
    if (ssh2_auth_pubkey_file($connection, 'david',
                              '/home/david/.ssh/id_rsa.pub',
                              '/home/david/.ssh/id_rsa')) {
      echo "Public Key Authentication Successful\n";
    } else {
      die('Public Key Authentication Failed');
    }
     
    //Retour : Warning: ssh2_auth_pubkey_file(): Authentication failed for david using public key
    Je précise que lorsque je me connecte avec identifiant et mot de passe c'est OK
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssh2_auth_password($connection, 'david', 'monMDPdeMonPC')
    Le problème doit provenir de la config de SSH mais je ne sais pas trop se qu'il faut modifier. Le fichier en question est /etc/ssh/shhd_config ?
    Pour la génération des mes clés j'ai utilisé le tuto http://blog.cheztoi.net/2009/09/08/m...sh-sur-ubuntu/ avec comme identifiant david et comme passphrase rien.

    Merci pour votre aide
    que contient /home/david/.ssh/authorized_keys ?
    est-ce que les permissions de tous les fichiers concernés sont correctes ?
    (700 pour .ssh, 600 pour authorized_keys et id_rsa …)

  3. #3
    Membre actif
    Avatar de debianhunter
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 63
    Par défaut
    Bonjour,

    Oui, en effet, il faut modifier /etc/ssh/sshd_config (du moins, sur debian !) pour une authentification uniquement basee sur une cle publique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    # Pas d'authentification par passwd...
    PasswordAuthentication no
    # mais authentification par cle publique
    PubkeyAuthentication yes
    # RSA pour la paire cle publique/privee
    RSAAuthentication yes

  4. #4
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    Merci pour ton aide debianhunter, mais malgré ces modifications je n'arrive pas à utiliser ma clé publique. Mon fichier semble correct ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    # Package generated configuration file
    # See the sshd_config(5) manpage for details
     
    # What ports, IPs and protocols we listen for
    Port 22
    # Use these options to restrict which interfaces/protocols sshd will bind to
    #ListenAddress ::
    #ListenAddress 0.0.0.0
    Protocol 2
    # HostKeys for protocol version 2
    HostKey /etc/ssh/ssh_host_rsa_key
    HostKey /etc/ssh/ssh_host_dsa_key
    #Privilege Separation is turned on for security
    UsePrivilegeSeparation yes
     
    # Lifetime and size of ephemeral version 1 server key
    KeyRegenerationInterval 3600
    ServerKeyBits 768
     
    # Logging
    SyslogFacility AUTH
    LogLevel INFO
     
    # Authentication:
    LoginGraceTime 120
    PermitRootLogin yes
    StrictModes yes
     
    RSAAuthentication yes
    PubkeyAuthentication yes
    #AuthorizedKeysFile    %h/.ssh/authorized_keys
     
    # Don't read the user's ~/.rhosts and ~/.shosts files
    IgnoreRhosts yes
    # For this to work you will also need host keys in /etc/ssh_known_hosts
    RhostsRSAAuthentication no
    # similar for protocol version 2
    HostbasedAuthentication no
    # Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
    #IgnoreUserKnownHosts yes
     
    # To enable empty passwords, change to yes (NOT RECOMMENDED)
    PermitEmptyPasswords yes
     
    # Change to yes to enable challenge-response passwords (beware issues with
    # some PAM modules and threads)
    #ChallengeResponseAuthentication no
     
    # Change to no to disable tunnelled clear text passwords
    PasswordAuthentication no
     
    # Kerberos options
    #KerberosAuthentication no
    #KerberosGetAFSToken no
    #KerberosOrLocalPasswd yes
    #KerberosTicketCleanup yes
     
    # GSSAPI options
    #GSSAPIAuthentication no
    #GSSAPICleanupCredentials yes
     
    X11Forwarding yes
    X11DisplayOffset 10
    PrintMotd no
    PrintLastLog yes
    TCPKeepAlive yes
    #UseLogin no
     
    #MaxStartups 10:30:60
    #Banner /etc/issue.net
     
    # Allow client to pass locale environment variables
    AcceptEnv LANG LC_*
     
    Subsystem sftp /usr/lib/openssh/sftp-server
     
     
    # Set this to 'yes' to enable PAM authentication, account processing,
    # and session processing. If this is enabled, PAM authentication will
    # be allowed through the ChallengeResponseAuthentication and
    # PasswordAuthentication.  Depending on your PAM configuration,
    # PAM authentication via ChallengeResponseAuthentication may bypass
    # the setting of "PermitRootLogin without-password".
    # If you just want the PAM account and session checks to run without
    # PAM authentication, then enable this but set PasswordAuthentication
    # and ChallengeResponseAuthentication to 'no'.
    UsePAM yes
    Merci

  5. #5
    Membre actif
    Avatar de debianhunter
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 63
    Par défaut
    Bonjour,

    Qu'est-ce que contient le fichier de log ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep sshd /var/log/auth.log
    Comme le soulignait JeitEmgie, et comme indique dans le tutoriel, est-ce que la cle publique a bien ete copiee sur le serveur dans le fichier ~david/.ssh/authorized_keys et est-ce que les droits sont corrects ?

    En se logguant 'a la main', avec un utilisateur bidon, est-ce que le client renvoie bien 'Permission denied (publickey).' ?

    A +

  6. #6
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    Citation Envoyé par debianhunter
    grep sshd /var/log/auth.log/
    Quand je redémarre SSH j'obtiens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Server listening on 0.0.0.0 port 22.
    Server listening on :: port 22.
    Bind to port 22 on 0.0.0.0 failed: Address already in use.
    Bind to port 22 on :: failed: Address already in use.
    Cannot bind any address.
    et quand j'essaie de lancer ma fonction PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Authentication refused: bad ownership or modes for file /home/david/.ssh/authorized_keys
    Il semblerait que se soit les droits qui ne lui plait pas. Mais ci-dessous semblent dire le contraire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ls -al /home/david/
    drwxrwxrwx  2 david david   4096 2010-05-25 21:41 .ssh
     
    ls -al /home/david/.ssh
    total 24
    drwxrwxrwx  2 david david 4096 2010-05-25 21:41 .
    drwxr-xr-x 45 david david 4096 2010-06-07 19:20 ..
    -rw-rw-rw-  1 david david  401 2010-05-25 21:41 authorized_keys
    -rw-rw-rw-  1 david david 1675 2010-05-25 19:45 id_rsa
    -rw-rw-rw-  1 david david  401 2010-05-25 19:45 id_rsa.pub
    -rw-rw-rw-  1 david david  442 2010-05-25 19:45 known_hosts
    Citation Envoyé par debianhunter
    est-ce que la cle publique a bien ete copiee sur le serveur dans le fichier ~david/.ssh/authorized_keys et est-ce que les droits sont corrects ?
    Moi je fais des tests en local, donc mon PC fait serveur et client

    Citation Envoyé par debianhunter
    En se logguant 'a la main', avec un utilisateur bidon, est-ce que le client renvoie bien 'Permission denied (publickey).' ?
    C'est à dire ?


    Merci pour votre aide

  7. #7
    Membre actif
    Avatar de debianhunter
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 63
    Par défaut
    Citation Envoyé par Général03 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Server listening on 0.0.0.0 port 22.
    Server listening on :: port 22.
    Bind to port 22 on 0.0.0.0 failed: Address already in use.
    Bind to port 22 on :: failed: Address already in use.
    Cannot bind any address.
    En googlant, il est indique que cette erreur pourrait provenir du fait que IPv4 et IPv6 sont activees. Perso, j'ai blackliste ipv6 dans/etc/modprobe.d/blacklist et je n'ai jamais vu cette erreur...
    Citation Envoyé par Général03 Voir le message
    et quand j'essaie de lancer ma fonction PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Authentication refused: bad ownership or modes for file /home/david/.ssh/authorized_keys
    Il semblerait que se soit les droits qui ne lui plait pas. Mais ci-dessous semblent dire le contraire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ls -al /home/david/
    drwxrwxrwx  2 david david   4096 2010-05-25 21:41 .ssh
     
    ls -al /home/david/.ssh
    total 24
    drwxrwxrwx  2 david david 4096 2010-05-25 21:41 .
    drwxr-xr-x 45 david david 4096 2010-06-07 19:20 ..
    -rw-rw-rw-  1 david david  401 2010-05-25 21:41 authorized_keys
    -rw-rw-rw-  1 david david 1675 2010-05-25 19:45 id_rsa
    -rw-rw-rw-  1 david david  401 2010-05-25 19:45 id_rsa.pub
    -rw-rw-rw-  1 david david  442 2010-05-25 19:45 known_hosts
    Ca devrait etre plutot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ls -al /home/david/
    drwx------  2 david david   4096 2010-05-25 21:41 .ssh
     
    ls -al /home/david/.ssh
    total 24
    drwx------  2 david david 4096 2010-05-25 21:41 .
    drwxr-xr-x 45 david david 4096 2010-06-07 19:20 ..
    -rw-------  1 david david  401 2010-05-25 21:41 authorized_keys
    -rw-------  1 david david 1675 2010-05-25 19:45 id_rsa
    -rw-------  1 david david  401 2010-05-25 19:45 id_rsa.pub
    -rw-r--r--  1 david david  442 2010-05-25 19:45 known_hosts
    Citation Envoyé par Général03 Voir le message
    C'est à dire ?
    Qu'est-ce que dit la commande ci-dessous ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssh -p 22 david@computerName

  8. #8
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    david@computerName:~$ ssh -p 22 david@computerName
    The authenticity of host 'computerName (127.0.1.1)' can't be established.
    RSA key fingerprint is XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'computerName' (RSA) to the list of known hosts.
    Password: 
    Linux computerName 2.6.32-22-generic #33-Ubuntu SMP Wed Apr 28 13:27:30 UTC 2010 i686 GNU/Linux
    Ubuntu 10.04 LTS
     
    Welcome to Ubuntu!
     * Documentation:  https://help.ubuntu.com/
     
    10 packages can be updated.
    0 updates are security updates.
     
    Last login: Tue May 25 19:09:48 2010 from localhost
    Mais le truc que je trouve bizarre est que le login demandé est celui de mon PC !! Le login ne devrait pas être celui que j'ai inscrit lors de la création de ma clé, avec comme mot de passe la passphrase (chaine vide) ??

    Citation Envoyé par debianhunter
    Ca devrait etre plutot
    Code :

    ls -al /home/david/
    drwx------ 2 david david 4096 2010-05-25 21:41 .ssh

    ls -al /home/david/.ssh
    total 24
    drwx------ 2 david david 4096 2010-05-25 21:41 .
    drwxr-xr-x 45 david david 4096 2010-06-07 19:20 ..
    -rw------- 1 david david 401 2010-05-25 21:41 authorized_keys
    -rw------- 1 david david 1675 2010-05-25 19:45 id_rsa
    -rw------- 1 david david 401 2010-05-25 19:45 id_rsa.pub
    -rw-r--r-- 1 david david 442 2010-05-25 19:45 known_hosts
    Oui, se que tu me fais voir c'est le mini, moi j'ai mis encore plus de droits donc je ne pense que se soit mal.
    Citation Envoyé par debianhunter
    Perso, j'ai blackliste ipv6 dans/etc/modprobe.d/blacklist et je n'ai jamais vu cette erreur...
    Ce fichier n'existe pas, tu peux me donner le tiens ?

    Merci

  9. #9
    Futur Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Par défaut
    Citation Envoyé par Général03 Voir le message

    Oui, se que tu me fais voir c'est le mini, moi j'ai mis encore plus de droits donc je ne pense que se soit mal.
    Si justement. C'est une règle de sécurité, Open SSH refuse des fichiers clés privées accessibles par tout le monde.
    Il faut absolument bloquer la lecture / écriture de ces fichiers par groupe et other, donc du chmod 600

  10. #10
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    Citation Envoyé par Zagzag
    C'est une règle de sécurité, Open SSH refuse des fichiers clés privées accessibles par tout le monde.
    Il faut absolument bloquer la lecture / écriture de ces fichiers par groupe et other, donc du chmod 600
    J'ai modifié mon dossier /home/david/.ssh en 600 et mon serveur SSH semble démarré, voici mes logs
    Received signal 15; terminating.
    Server listening on 0.0.0.0 port 22.
    merci pour cette subtilité.
    Par contre je n'arrive toujours pas à utiliser ma fonction php ! Comment je peux vérifier quels sont les utilisateurs affectés pour SSH ? Zagzag, tu pourrais mettre le contenu de /etc/ssh/sshd_config car je crois que c'est un mauvais paramètre de ma config SSH ?

    Merci

  11. #11
    Futur Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Par défaut
    Citation Envoyé par Général03 Voir le message
    J'ai modifié mon dossier /home/david/.ssh en 600 et mon serveur SSH semble démarré, voici mes logs merci pour cette subtilité.
    Par contre je n'arrive toujours pas à utiliser ma fonction php ! Comment je peux vérifier quels sont les utilisateurs affectés pour SSH ? Zagzag, tu pourrais mettre le contenu de /etc/ssh/sshd_config car je crois que c'est un mauvais paramètre de ma config SSH ?

    Merci
    Ton sshd_config est correct, c'est juste que tu n'a pas encore rentré ta clé publique dans ton authorized_keys. Lorsque cela sera fait il ne te demandera plus le mot de passe.

    Ton serveur PHP est le même serveur que le SSH? Si non, il faut que tu génère tes clés RSA sur le serveur PHP.

    Ensuite, rends toi sur le serveur PHP, même si c'est le même que le serveur SSH, puis tape ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ssh-copy-id david@serveur_ssh
    Il va te demander ton mot de passe, puis il va copier ta clé publique sur le serveur SSH dans authorized_keys.
    Après cela, tu pourra utiliser ta fonction PHP de connection sans mot de passe, en lui fournissant la clé publique autorisée (~/.ssh/id_rsa.pub sur le serveur PHP normalement).

  12. #12
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Citation Envoyé par Général03 Voir le message
    J'ai modifié mon dossier /home/david/.ssh en 600 et mon serveur SSH semble démarré, voici mes logs merci pour cette subtilité.
    Par contre je n'arrive toujours pas à utiliser ma fonction php ! Comment je peux vérifier quels sont les utilisateurs affectés pour SSH ? Zagzag, tu pourrais mettre le contenu de /etc/ssh/sshd_config car je crois que c'est un mauvais paramètre de ma config SSH ?

    Merci
    c'est 700 pour le dossier .ssh lui-même

    vous devez pouvoir ajouter des fichiers dedans - directement comme de nouvelles clés ou indirectement lors d'une connexion à un autre serveur comme known_hosts…

    600 pour authorized_keys et les clés privées

    et 644 fonctionne pour known_hosts et les clés publiques

  13. #13
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    Je suis d'accord avec toi JeitEmgie pour les permissions j'ai bien celle que tu m'indiques... sauf
    Citation Envoyé par JeitEmgie
    et 644 fonctionne pour known_hosts et les clés publiques
    c'est id_rsa.pub ma clé publique (actuellement elle est en 600) ?

    Pour mon cas le known_host ne sert pas car je suis sur le même serveur ?

  14. #14
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    Citation Envoyé par Zagzag
    Ton sshd_config est correct, c'est juste que tu n'a pas encore rentré ta clé publique dans ton authorized_keys.
    Ben je crois que si car le contenu de ~/.ssh/authorized_keys et ~/.ssh/id_rsa.pub est identique.
    Citation Envoyé par Zagzag
    Ton serveur PHP est le même serveur que le SSH?
    Oui je fais des tests sur mon PC, donc serveur et client sur la même machine.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ssh-copy-id david@serveur_ssh
    /usr/bin/ssh-copy-id: ERROR: No identities found
    En faite le fichier placé /home/david/.ssh/id_rsa.pub est le fichier publique pour l'utilisateur david et le fichier /home/david/.ssh/id_rsa la clé du serveur à bien conserver sur le serveur (et à ne jamais divulger), c'est bien ça ? Dans ce cas à quel endroit dans le fichier sshd_config, SSH va chercher la clé ?
    A quoi sert le fichier /home/david/.ssh/known_hosts ?
    Par contre ssh en mode console fonctionne comme le montre le code ci-dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    david@david-netbook:~$ ssh -p 22 david@david-netbook
    ssh: connect to host david-netbook port 22: Connection refused
    david@david-netbook:~$ ssh -p 22 david@127.0.0.1
    Linux david-netbook 2.6.32-22-generic #33-Ubuntu SMP Wed Apr 28 13:27:30 UTC 2010 i686 GNU/Linux
    Ubuntu 10.04 LTS
     
    Welcome to Ubuntu!
     * Documentation:  https://help.ubuntu.com/
     
    Last login: Wed Jun  9 18:46:34 2010 from david-netbook
    ...et sans mot de passe !!!!

    Merci pour votre aide

  15. #15
    Futur Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Par défaut
    Citation Envoyé par Général03 Voir le message
    BEn faite le fichier placé /home/david/.ssh/id_rsa.pub est le fichier publique pour l'utilisateur david et le fichier /home/david/.ssh/id_rsa la clé du serveur à bien conserver sur le serveur (et à ne jamais divulger), c'est bien ça ?
    Ta confusion provient du fait que le serveur et le client est la même machine pour toi. Le fichier id_rsa est la clé privée du client, et le fichier id_rsa.pub est la clé publique du client. Le client envoie sa clé publique au serveur, qui va chiffrer ses communications a l'aide de celle ci. Le client va déchiffrer les communications envoyées par le serveur grâce a sa clé privée.

    Le serveur procède de la même façon en fournissant sa clé publique au client.

    Dans ce cas à quel endroit dans le fichier sshd_config, SSH va chercher la clé ?
    Je ne connait pas précisément les mécanismes de gestion des clés côté serveur, mais ce n'est pas très important, car le plus important est du côté client.

    A quoi sert le fichier /home/david/.ssh/known_hosts ?
    Ce fichier sert du côté client a identifier un serveur déjà connu, afin de prévenir les attaques type "man in the middle". En effet, si pour une raison quelconque pour une IP déjà connu son identification change, SSH émettra une alerte et refusera de se connecter au serveur.
    Lorsque tu t'es connecté pour la première fois au serveur, il t'a demandé si on pouvait lui faire confiance, tu a répondu "yes" puis le client a stocké l'identification du serveur dans ce fichier.

    Par contre ssh en mode console fonctionne comme le montre le code ci-dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    david@david-netbook:~$ ssh -p 22 david@david-netbook
    ssh: connect to host david-netbook port 22: Connection refused
    david@david-netbook:~$ ssh -p 22 david@127.0.0.1
    Linux david-netbook 2.6.32-22-generic #33-Ubuntu SMP Wed Apr 28 13:27:30 UTC 2010 i686 GNU/Linux
    Ubuntu 10.04 LTS
     
    Welcome to Ubuntu!
     * Documentation:  https://help.ubuntu.com/
     
    Last login: Wed Jun  9 18:46:34 2010 from david-netbook
    ...et sans mot de passe !!!!

    Merci pour votre aide
    Si ca fonctionne sans mot de passe c'est donc que la clé publique est bien enregistrée dans le fichier authorized_keys du serveur. Ta connexion par PHP devrait donc marcher sans mot de passe, si tu lui donne la clé publique de ton client.

    Pour t'entrainer a utiliser SSH et a différencier client et serveur, je te conseille de lancer une petite machine virtuelle qui te servira de client. Ca t'évitera de confondre les fichiers utilisés par le client et ceux utilisés par le serveur.

  16. #16
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    J'ai suivi tes conseils JeitEmgie mais même avec id_rsa.pub en 644 ca ne change rien.

    Merci pour tes explications Zagzag je comprend mieux comment tout sa fonctionne. Donc si SSH fonctionne ca veut dire que mon problème provient de la fonction ssh2_auth_pubkey_file() de php (mauvais fichier, droits, ...) ?


    Merci pour votre aide

  17. #17
    Futur Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Par défaut
    Je me demande si ton problème ne vient pas du fait que le serveur PHP du coup ne peut pas ouvrir lire les clés, car elle ne sont pas accessibles a un utilisateur autre que "david"

    Essaye de changer l'owner des fichier id_rsa et id_rsa.pub pour mettre l'utilisateur du démon PHP

  18. #18
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    Essaye de changer l'owner des fichier id_rsa et id_rsa.pub pour mettre l'utilisateur du démon PHP
    Pas bête comme idée, mais comment fais tu pour connaitre les daemons php ?

  19. #19
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Citation Envoyé par Général03 Voir le message
    J'ai suivi tes conseils JeitEmgie mais même avec id_rsa.pub en 644 ca ne change rien.

    Merci pour tes explications Zagzag je comprend mieux comment tout sa fonctionne. Donc si SSH fonctionne ca veut dire que mon problème provient de la fonction ssh2_auth_pubkey_file() de php (mauvais fichier, droits, ...) ?


    Merci pour votre aide
    les droits décrits sont ceux pour que çà fonctionne correctement en ligne de commande via ssh, scp … sous le compte de l'utilisateur…

    si le code PHP est exécuté par le serveur Web, il l'est sous un compte particulier (www, apache, …)

    c'est cet utilisateur qui doit avoir les droits d'accès sur le chemin complet des fichiers de clés…
    et donner les droits d'accès au .ssh d'un compte utilisateur particulier au serveur Apache n'est pas une bonne idée…
    en ce sens tous les exemples sur les sites PHP qui montrent des paramètres /home/somebody… m'ont toujours paru farfelus… question sécurité… sauf à exécuter le script PHP en ligne de commande sous le compte du dit utilisateur…

  20. #20
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    Il me semble que se soit root le propriétaire de apache, donc j'ai essayé de mettre .ssh et son contenu à root:root mais ca ne change rien.

    A quel endroit sont les logs php ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [AC-2010] Trouver des n° identification manquant par requete
    Par stilan dans le forum Access
    Réponses: 3
    Dernier message: 20/04/2014, 19h56
  2. Authentification par clé publique/privée
    Par DefmY dans le forum Sécurité
    Réponses: 1
    Dernier message: 02/02/2011, 10h23
  3. Réponses: 1
    Dernier message: 11/05/2010, 22h35
  4. Connexion ssh par clé publique
    Par iowa dans le forum Administration système
    Réponses: 2
    Dernier message: 28/06/2008, 00h50
  5. authentification ssh par cle publique
    Par NorthernLights dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 14/06/2007, 04h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo