Bonjour,
Je dispose d'un hébergement mutualisé Pro.
Je souhaiterai pouvoir me connecter depuis mon terminal via SSH sans avoir à saisir de mot de passe.
Je suis donc la procédure évoquée dans la documentation à cette adresse] (https://www.ovh.com/fr/g1769.creation_des_cles_ssh) hormis la dernière étape qui évoque une interface dans l'espace client destinée déposer la clé publique que est introuvable :
Je créer donc mes clés publiques et privées.
Puis je dépose ma clé publique dans le répertoire /home/_USERNAME_/.ssh/authorized_keys comme l'évoque cette [documentation afin de dépose ma clé publique
Malheureusement lors d'une nouvelle connexion sur le serveur le mot de passe est toujours demandé.
Qu'ai-je raté ?
Mise en place d'une connexion ssh sans mot de passe
Related questions
- Connexion à mon compte client
141614
13.02.2019 09:51
- Serveur non sécurisé, celui-ci ne supporte pas FTP sur TLS
119588
03.09.2018 14:46
- reCAPTCHA erreur pour le propriétaire du site : clé de site non valide
104636
14.02.2019 16:17
- [FAQ] Comment mettre à jour mon site pour supporter Apache 2.4 ?
91482
28.07.2017 11:39
- Passage en php 7.4
88615
30.06.2020 05:05
- Augmenter taille PHP Post Max Size sur mutualisé ?
84508
04.12.2019 21:52
- The requested URL / was not found on this server
83750
02.03.2017 18:25
- Ce site est inaccessible Impossible de trouver l'adresse DNS du serveur
83595
16.10.2016 16:24
- NextCloud sur mutualisé
83489
07.04.2017 08:42
- Deploy d'un projet Node JS
83420
12.10.2016 20:18
Bonjour @Pierre-AntoineS,
Pouvez-vous envoyer la clef publique au serveur en exécutant la commande suivante depuis votre terminal (sur votre machine en local, si le nom de votre clef publique est différent de celui qui s'affiche ci- dessous, veuillez adapter la commande ) :
ssh-copy-id -i ~/.ssh/id_rsa.pub login@1ssh.comssh.com
Bonjour WajdiD,
Après avoir suivit vos instructions j'ai le résultat suivant :
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'login@1ssh.com'ssh.com'"
and check to make sure that only the key(s) you wanted were added.
(J'ai bien remplacé login@1ssh.comssh.com par mon serveur)
Je tente un connexion depuis un nouveau terminal, le mot de passe continue à être demandé.
Quelles sont les permissions sur le dossier .ssh et le fichier authorized_keys sur le serveur ?
Bonjour,
votre client essaye bien la clé avant de passer en mot de passe ?
Note : la section mutu n'est peut être pas le bon emplacement alors…
Cordialement, janus57
Un complément d'information dans le même contexte de la proposition de Janus57 : Vous pouvez ajouter le paramètre -vvv à la commande de connexion ssh pour voir le deroulement de l'authentification.
Désolé pour cette réponse tardive j'ai essayé d'approfondir le sujet en réinitialisant les clés mais sans succès.
Je constate que la clé est bien déposée sur le serveur dans le fichier .ssh/authorized_keys
J'ai fait d'autre tentative en passant les répertoires et fichier en 777.
Voici le résultat de la commande
ssh -vvv login@1ssh.comssh.com
OpenSSH_7.4p1, LibreSSL 2.5.0
debug1: Reading configuration data /Users/_USERNAME_/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug2: resolving "1ssh.comssh.com" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to 1ssh.comssh.com [213.186.33.207] port 22.
debug1: Connection established.
debug1: identity file /Users/_USERNAME_/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/_USERNAME_/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/_USERNAME_/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/_USERNAME_/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/_USERNAME_/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/_USERNAME_/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/_USERNAME_/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/_USERNAME_/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.4
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.0p1
debug1: match: OpenSSH_6.0p1 pat OpenSSH* compat 0x04000000
debug2: fd 5 setting O_NONBLOCK
debug1: Authenticating to serveur-ssh.com:22 as 'caveavin'
debug3: hostkeys_foreach: reading file "/Users/_USERNAME_/.ssh/known_hosts"
debug3: record_hostkey: found key type RSA in file /Users/_USERNAME_/.ssh/known_hosts:39
debug3: load_hostkeys: loaded 1 keys from 1ssh.comssh.com
debug3: order_hostkeyalgs: prefer hostkeyalgs: ssh-rsa-cert-v01@openssh.com,rsa-sha2-512,rsa-sha2-256,ssh-rsa
debug3: send packet: type 20
debug1: SSH2_MSG_KEXINIT sent
debug3: receive packet: type 20
debug1: SSH2_MSG_KEXINIT received
debug2: local client KEXINIT proposal
debug2: KEX algorithms: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1,ext-info-c
debug2: host key algorithms: ssh-rsa-cert-v01@openssh.com,rsa-sha2-512,rsa-sha2-256,ssh-rsa,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519
debug2: ciphers ctos: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,aes192-cbc,aes256-cbc
debug2: ciphers stoc: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,aes192-cbc,aes256-cbc
debug2: MACs ctos: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,zlib@openssh.com,zlib
debug2: compression stoc: none,zlib@openssh.com,zlib
debug2: languages ctos:
debug2: languages stoc:
debug2: first_kex_follows 0
debug2: reserved 0
debug2: peer server KEXINIT proposal
debug2: KEX algorithms: ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: host key algorithms: ssh-rsa
debug2: ciphers ctos: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se
debug2: ciphers stoc: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se
debug2: MACs ctos: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-sha2-256,hmac-sha2-256-96,hmac-sha2-512,hmac-sha2-512-96,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: MACs stoc: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-sha2-256,hmac-sha2-256-96,hmac-sha2-512,hmac-sha2-512-96,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: compression ctos: none,zlib@openssh.com
debug2: compression stoc: none,zlib@openssh.com
debug2: languages ctos:
debug2: languages stoc:
debug2: first_kex_follows 0
debug2: reserved 0
debug1: kex: algorithm: ecdh-sha2-nistp256
debug1: kex: host key algorithm: ssh-rsa
debug1: kex: server->client cipher: aes128-ctr MAC: umac-64@openssh.com compression: none
debug1: kex: client->server cipher: aes128-ctr MAC: umac-64@openssh.com compression: none
debug3: send packet: type 30
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug3: receive packet: type 31
debug1: Server host key: ssh-rsa SHA256:oNTxGop/dkoiQtdIEiaBRsMb4/tBsHCweS6Tp14A+Bg
debug3: hostkeys_foreach: reading file "/Users/_USERNAME_/.ssh/known_hosts"
debug3: record_hostkey: found key type RSA in file /Users/_USERNAME_/.ssh/known_hosts:39
debug3: load_hostkeys: loaded 1 keys from 1ssh.comssh.com
debug3: hostkeys_foreach: reading file "/Users/_USERNAME_/.ssh/known_hosts"
debug3: record_hostkey: found key type RSA in file /Users/_USERNAME_/.ssh/known_hosts:15
debug3: load_hostkeys: loaded 1 keys from 213.186.33.207
debug1: Host '1ssh.com'ssh.com' is known and matches the RSA host key.
debug1: Found key in /Users/_USERNAME_/.ssh/known_hosts:39
debug3: send packet: type 21
debug2: set_newkeys: mode 1
debug1: rekey after 4294967296 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug3: receive packet: type 21
debug1: SSH2_MSG_NEWKEYS received
debug2: set_newkeys: mode 0
debug1: rekey after 4294967296 blocks
debug2: key: /Users/_USERNAME_/.ssh/id_rsa (0x7ff77fc1e980)
debug2: key: /Users/_USERNAME_/.ssh/id_dsa (0x0)
debug2: key: /Users/_USERNAME_/.ssh/id_ecdsa (0x0)
debug2: key: /Users/_USERNAME_/.ssh/id_ed25519 (0x0)
debug3: send packet: type 5
debug3: receive packet: type 6
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug3: send packet: type 50
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/_USERNAME_/.ssh/id_rsa
debug3: send_pubkey_test
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /Users/_USERNAME_/.ssh/id_dsa
debug3: no such identity: /Users/_USERNAME_/.ssh/id_dsa: No such file or directory
debug1: Trying private key: /Users/_USERNAME_/.ssh/id_ecdsa
debug3: no such identity: /Users/_USERNAME_/.ssh/id_ecdsa: No such file or directory
debug1: Trying private key: /Users/_USERNAME_/.ssh/id_ed25519
debug3: no such identity: /Users/_USERNAME_/.ssh/id_ed25519: No such file or directory
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
Bonjour,
Votre client ssh essaye bien de procéder à l'authentification au serveur en utilisant une paire de clé.
Pour les permissions sur le serveur, veuillez les changer comme suit :
Le dossier .ssh : 700
Le fichier authorized_keys : 604
C'est fait, j'ai passé :
Le dossier .ssh : 700
Le fichier authorized_keys : 604
J'ai décidé de repartir à 0 afin d'être certain que mes différentes manipulations n'ont rien interférée
J'ai nettoyé le fichier known_hosts en local pour le nom du serveur ssh concerné.
_ssh-keygen -R login@1ssh.com_ssh.com_
J'ai créé une nouvelle paire de clé ayant un nom différent de id_rsa :
_ssh-keygen -b 4096 -f id_rsa_toto_
J'ai copié la clé publique sur le serveur
__ssh -i /Users/_USERNAME_/.ssh/id_rsa_toto.pub login@1ssh.com_ssh.com_
=> Number of key(s) added: 1
Le fichier authorized_keys est bien mis à jour.
Je me connecte en précisant d'utiliser la bonne clé id_rsa_toto
_ssh -i /Users/_USERNAME_/.ssh/id_rsa_toto login@1ssh.com_ssh.com_
_Enter passphrase for key '/Users/_USERNAME_/.ssh/id_rsa_toto': _
_Welcome to OVH_
Je suis connecté.
Je me déconnecte et tente une nouvelle fois de me connecter selon deux méthodes
_ssh login@1ssh.com_ssh.com_
Le password est demandé
_ssh -i /Users/_USERNAME_/.ssh/id_rsa_toto login@1ssh.com_ssh.com_
La passphrase est demandée
De mémoire, ce sont les fichiers id_rsa et id_dsa qui sont examinés par défaut, la raison pour laquelle vous êtes invité à taper le mot de passe. Le fait que c'est la passphrase qui est demandée lorsque vous avez spécifié quel fichier id à utiliser, renforce cette idée. Toujours, si vous souhaitez utiliser des noms de clefs personnalisés vous pouvez déclarer ces noms des id à utiliser avec chaque serveur dans un fichier ~/.ssh/config (voir les man pages pour en savoir plus).
Je vais étudier les man page et si cela devient trop compliqué je repasserai sur les clés par défaut.
Je vous tiens au courant. Merci de votre aide.
Ce tuto externe pourra être utile : http://nerderati.com/2011/03/17/simplify-your-life-with-an-ssh-config-file/
Bonjour @WajdiD,
J'ai trouvé la solution. En fait il y avait des points à résoudre.
Le premier est celui que vous avez identifié :
si vous ne précisez pas la clé que vous souhaitez utiliser par la commande _ssh -i /Users/\_USERNAME\_/.ssh/id\_rsa\_toto login@1ssh.com_ssh.com_ la clé id_rsa sera utilisé par défaut (or je ne l'avais pas ajouté en le fichier authorized_keys.
J'ai donc ajouté en local dans le fichier /Users/\_USERNAME\_/.ssh/config les lignes suivantes :
_Host serveur-ssh_
_Host 1ssh.com_ssh.com_
_IdentityFile ~/.ssh/id\_rsa\_toto_
Ma nouvelle clé est bien utilisée par défaut lorsque je me connecte sur le serveur. Mais la passphrase est toujours demandé systématiquement.
J'en arrive donc au second point qui en réalité est spécifique à Mac OS Sierra (les linuxien vont encore troller). Pour le résoudre il faut rajouter au fichier /Users/\_USERNAME\_/.ssh/config les lignes suivantes :
Host *
AddKeysToAgent yes
UseKeychain yes
Désormais je me connecte directement au serveur avec une clé spécifique. Ouf...
Merci @WajdiD pour son aide plus que précieuse.
Souhaitez-vous que que fasse un récapitulatif des manipulations puis que l'on nettoie le thread ?
Bonjour @Pierre-AntoineS,
Merci d'avoir partagé ces détails avec la communauté :) , cela sera certainement d'utilité à d'autres personnes rencontrant le même problème sur leurs Mac.
Concernant la phrase de passe, elle sert juste à protéger votre clef privée (en la chiffrant avec la passphrase bien évidemment) sur votre ordinateur et non pas pour vous authentifier au serveur (la paire de clefs est utilisée à ces fins). Certaines personnes choisissent de ne pas utiliser une passphrase (lors de la création d'une paire de clefs, ils ne tapent pas une passphrase et continuent simplement avec le bouton "Entrée"), donc lors de la connexion au serveur dans ce cas, la clef privée est utilisée directement et aucun déchiffrement de celle-ci ne prend lieu.
Je me permets de vous référer à cette partie de ce tuto qui explique mieux comment automatiser la connexion au serveur en présence d'une passphrase, sans devoir à la retaper à chaque reprise : https://openclassrooms.com/courses/reprenez-le-controle-a-l-aide-de-linux/la-connexion-securisee-a-distance-avec-ssh#/id/r-2282989
Bonjour,
Actuellement, il est possible d'ajouter une clé SSH pour se connecter, mais cela ne désactive pas le mot de passe.
L'idée de créer des utilisateurs sans mot de passe revient de plus en plus ces derniers temps. Nous sommes en train de l'ajouter dans notre roadmap. Elle devrait arriver d'ici à la fin de l'été.
Bien cordialement,
Vincent
Bonjour @vcasse,
Je ne suis pas certain de bien comprendre car j'arrive désormais à me connecter en SSH sans avoir à saisir de mot de passe.
Bonjour @Pierre-AntoineS,
Bien sur, mais vous avez encore accés au login avec mot de passe si vous n'avez pas de clé SSH sur votre poste. L'idée est de pouvoir désactiver ce login pour les personnes qui le souhaitent.
Bonne journée,
Vincent
Bonjour,
Il ne faut pas tout confondre, il y a deux façon de se logguer:
1/ Connexion en ssh avec un password (prompt à la connexion)
2/ Connexion en ssh avec une clef SSH (sans passphrase ou avec)
L'un empêche pas l'autre, cependant désactiver le 1/ en supprimant la méthode d'authentification par password et ne laissant que la connexion par clef SSH améliore grandement la sécurité.
Il éxiste par contre le risque de perdre sa clef SSH et de ne plus pouvoir se connecter.
Cdt,
Merci pour ces précisions.
3 ans plus tard, je viens d'avoir le même problème!
Attention, les serveurs mutualisés ne supportent pas la commande `ssh-copy-id`, il faut copier à la main sa clé privée à la racine du FTP dans un fichier `/.ssh/autorized_keys`
2 ans plus tard, le problème se pose encore ;-) mais est résolu Ouf !
Il faut effectivement s'assurer que sa clé **publique** est bien présente dans le fichier /.ssh/autorized_keys
ATTENTION, vous pouvez également avoir un fichier /.ssh/autorized_keys2 présent dans ce répertoire si vous avez créé un dépôt SVN qui l'a génèré sauf que le début du fichier configure le dialogue SVN qui interdit d'ouvrir un terminal ce qui produit l'erreur suivante si on se connecte en SSH:
`Server refused to allocate pty
( success ( 2 2 ( ) ( edit-pipeline svndiff1 absent-entries commit-revprops depth log-revprops atomic-revprops partial-replay inherited-props ephemeral-txnprops file-revs-reverse ) ) )
`
OVH spécifie bien qu'une même clé ne peut être utilisé pour un accès SVN et SSH pour les raisons évoquées ci-dessus...(blocage du terminal)
https://docs.ovh.com/ca/fr/hosting/utiliser-svn/ https://docs.ovh.com/ca/fr/hosting/utiliser-svn/
Vous pouvez également avoir un fichier known_hosts avec une ancienne clé publique. Ce fichier semble ne pas servir et pourrait donc être supprimé (mais là je m'en remets à vos commentaires concernant ce point...)