J'ai un accès SSH à mon hébergement Web, cela fonctionne très bien avec PuTTY (je devais juste entrer mon domaine, mon nom d'utilisateur et mon mot de passe), mais cela semble beaucoup plus compliqué avec SourceTree.
Bien que PuTTY ait un champ pour "Nom d'hôte", "nom d'utilisateur" et "mot de passe", SourceTree n'a pas et nécessite un fichier spécial ".ppk
"?!
J'ai besoin de connecter SourceTree à mon hébergement Web via SSH pour la raison évidente que je veux l'utiliser pour pousser vers un référentiel distant situé sur mon hébergement Web.
Alors comment puis-je obtenir un .ppk
fichier généré à partir de mon domaine/nom d'utilisateur/mot de passe? Toute aide grandement appréciée!
PS: j'ai remarqué qu'ils facilitaient la connexion à BitBucket en offrant deux champs simples: "nom d'utilisateur" et "mot de passe", et rendaient la connexion à un tiers extrêmement difficile - parti SSH ... Est-ce une tentative intentionnelle d'empêcher la concurrence?!
Il existe deux façons de connecter SourceTree à n'importe quel SSH.
La manière la plus simple est d'utiliser votre nom de domaine, nom d'utilisateur et mot de passe fournis par votre fournisseur d'hébergement Web:
Utilisez simplement la syntaxe suivante: ssh://[email protected]/
- SourceTree vous invitera alors à entrer votre mot de passe chaque fois que vous pousserez vers ce SSH:
Si vous cochez la case Remember password
case à cocher, votre mot de passe sera enregistré et vous ne serez plus invité à le saisir. Vous pouvez modifier ou supprimer le mot de passe stocké ultérieurement en accédant à Tools > Options > Authentication
comme indiqué sur l'image ci-dessous:
Remarque: Dans mon cas (hébergement partagé 1 & 1), le nom d'utilisateur et le mot de passe étaient les mêmes que mon compte FTP principal.
La manière la plus complexe est d'utiliser une paire de clés privées/publiques:
Cela implique de générer deux clés (une "privée" et une "publique") à l'aide du " PuTTY Key Generator " (dans SourceTree, accédez à Tools > Create or Import SSH Keys
).
Une fois générée, enregistrez la clé privée dans un .ppk
fichier et chargez-le dans SourceTree (Tools > Create or Import SSH Keys > Load
). Ce n'est pas encore fini: vous devez maintenant ajouter la clé publique à votre serveur. Pour ce faire, ajoutez-le au fichier suivant sur votre serveur Web: /.ssh/authorized_keys
.
Si ce fichier n'existe pas, enregistrez votre clé publique dans un fichier nommé authorized_keys
et téléchargez-le sur votre serveur via FTP. Vous devez le télécharger dans un répertoire nommé /.ssh/
situé à la racine (s'il n'existe pas, créez-le simplement).
Remarque: assurez-vous d'utiliser le compte FTP principal de votre compte d'hébergement. Si cela ne fonctionne pas, ajustez les autorisations (chmod) du authorized_keys
fichier et définissez-le sur 777
à l'aide de votre logiciel FTP (Right-click on "authorized_keys" > File permissions
):
Pas besoin de ligne de commande.
J'ai dû faire un travail supplémentaire de réponse de Patoshi .
Dans Outils> Options> Général> Configuration du client SSH, je devais le pointer vers la clé id_rsa et sélectionner OpenSSH comme client SSH (PuTTY/PLink est sélectionné par défaut).
Ensuite, chaque fois que vous démarrez SourceTree, une invite apparaîtra demandant la phrase secrète pour décrypter la clé id_rsa (en supposant que vous l'avez créée avec une phrase secrète pour la crypter). Cela ressemble à ceci:
À ce stade, je pouvais aller sur la page Clone, coller l'adresse SSH de mon projet Gitlab ([email protected]: Blah/Wwhat.git) et le cloner. Pas d'invite supplémentaire pour le nom d'utilisateur ou le mot de passe (car il utilise des clés SSH).
J'ai eu du mal à faire fonctionner SourceTree avec un dépôt git existant qui résidait sur gitlab. J'ai également dû comprendre pourquoi il ne se connectait pas car j'utilisais puttygen pour générer les clés.
Assurez-vous après avoir généré vos clés de l'exporter au format OpenSSH
Vous placez ce fichier dans votre dossier c:\user\MYUSERNAME.ssh en tant que fichier:
id_rsa est le fichier de clé privée et .pub est le fichier de clé publique que vous collez dans votre autre application, qui dans mon cas était gitlab.