web-dev-qa-db-fra.com

Comment configurer mes clés SSH pour pouvoir copier des fichiers de mon PC local vers un serveur partagé distant?

Je veux commencer à utiliser SSH au lieu de FTP, mais je n'ai aucune idée des clés SSH.

J'aimerais utiliser une commande Gulp pour transférer mes fichiers (comme je le fais maintenant avec FTP). J'ai trouvé une bonne quantité de paquets NPM qui font cela. Cependant, personne n’explique comment configurer réellement les clés SSH sur mon serveur partagé partagé (LAMP) et sur mon ordinateur local (MacOS).

Est-ce que quelqu'un saurait comment mettre cela en place? Tous les tutoriels que j'ai trouvés traitaient de la configuration du package node.js, pas des clés SSH elles-mêmes.

Mise à jour avec des informations supplémentaires

  • Le serveur est Linux. C’est un serveur de pile LAMP partagé et pas cher exécutant CPanel
  • Je ne peux accéder au serveur que via CPanel et FileZilla FTP (mais pas avec SFTP)
  • Le résultat de l'exécution de ssh -i ~/.ssh/id_rsa [email protected] -vvv est le suivant:
OpenSSH_7.9p1, LibreSSL 2.7.3
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 48: Applying options for *
debug1: Connecting to mysite.com port 22.
ssh: connect to Host mysite.com port 22: Operation timed out
  • Pensant qu'il pourrait s'agir d'un problème de pare-feu, j'ai testé avec plusieurs fournisseurs de services Internet, mais j'ai le même problème.
  • J'ai essayé d'exécuter la commande netstat -ntlp | grep ssh sur le terminal situé dans l'interface graphique de CPanel (je ne sais pas comment l'exécuter autrement), mais il n'a pas reconnu la commande netstat.
1
MeltingDog
  • Peut-être que cet article pourrait vous intéresser. Cependant, avant de suivre cet article, il serait intéressant de commencer par configurer la confiance SSH.
  • Le problème est donc que vous souhaitez copier certains fichiers de votre ordinateur local vers un serveur distant.
  • Pour ce faire, vous devez d'abord choisir une méthode d'authentification. En supposant que le serveur distant soit Linux, vous avez deux options: authentification par mot de passe et authentification par mot de passe moins a.k.a.
  • Pour que le serveur distant vous authentifie, ce sont les étapes à suivre.
  • Vous créez une paire de clés SSH (clé privée + clé publique) sur votre machine locale.
  • Il vous suffit de copier/ajouter la clé publique de contenu depuis votre ordinateur local dans le fichier .ssh/registered_keys du serveur distant.
  • Maintenant, lorsque vous tenterez de vous connecter à SSH sur le serveur distant à partir de votre ordinateur local, vous spécifierez dans la commande que vous essayez de vous authentifier avec le fichier de clé privée que vous avez déjà créé à la première étape et l'authentification aboutira, car vous avez importé la clé publique correspondante dans le fichier allowed_keys du serveur distant.

  • Commençons par créer une paire de clés: ssh-keygen -t rsa, puis sélectionnez toutes les options par défaut en appuyant simplement sur la touche Entrée.

  • Dans le résultat de la commande ci-dessus, vous verrez que les fichiers de clé privée et publique seront générés, par exemple: Your identification has been saved in /home/ec2-user/.ssh/id_rsaYour public key has been saved in /home/ec2-user/.ssh/id_rsa.pub
  • Maintenant, copiez/ajoutez le fichier CONTENT de id_rsa.pub à partir du répertoire mentionné dans votre cas dans le fichier ~/.ssh/allowed_keys.
  • Pour confirmer que la confiance SSH a été établie, essayez simplement de passer de SSH de votre machine locale au serveur distant en utilisant cette commande - ssh -i /location/of/private/key username@remote_server_ip
  • Si tout va bien et que vous pouvez vous connecter, il vous suffit de suivre le lien que j'ai mentionné à la première ligne de ce post.
3
st_rt_dl_8
  • Peut-être devons-nous revenir en arrière et essayer de comprendre un peu plus le contexte. Les réponses suivantes seraient utiles. Comme mentionné précédemment, les étapes que j'ai suggérées étaient basées sur mon hypothèse selon laquelle le serveur distant est Linux.
  • Quel est le système d'exploitation sur le serveur distant?
  • Pouvez-vous vous connecter au serveur distant?
  • Lorsque vous exécutez cette commande, ssh -i ~/.ssh/id_rsa [email protected] l'exécutez avec l'indicateur -vvv. Cela lance le SSH en mode débogage, révélant souvent quelques informations supplémentaires sur ce qui se passe sous le capot. Un exemple de commande est ssh -i ~/.ssh/id_rsa [email protected] -vvv. Faites-nous savoir la sortie.
  • ne fois encore, en supposant que le serveur distant soit linux, les possibilités suivantes s'offrent à vous: -
  • Le serveur sshd de la machine distante écoute sur un port autre que le port par défaut TCP 22.
  • Pour vérifier cela, vous pouvez vous connecter à la machine distante et exécuter Sudo netstat -ntlp | grep ssh. Il vous montrera le port sur lequel le serveur SSH écoute les connexions SSH.
  • Si vous voyez que SSH écoute sur un autre port que TCP 22, vous devez ajouter le drapeau -p dans cette commande ssh. L'exemple de commande dans ce serait ssh -p port_number_on_which_SSH_server_is_listening -i ~/.ssh/id_rsa [email protected] -vvv
  • S'il n'y a pas de résultat de la commande ci-dessus, cela signifie que le SSH n'est pas en cours d'exécution sur le serveur distant et c'est la raison pour laquelle vous ne pouvez pas utiliser SSH dans celui-ci. *
  • J'ai également une instance distante à laquelle j'ai pu me connecter en utilisant la même commande. J'ai été en mesure de reproduire/reproduire le problème lorsque j'ai désactivé mon accès SSH à cette instance et exécuté la commande SSH en mode débogage. Voici le résultat obtenu (vous obtenez également la même erreur):
$ ssh -i /c/Users/XXX/ssh-keys/sl.pem [email protected] -vv
OpenSSH_7.5p1, OpenSSL 1.0.2k  26 Jan 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug2: resolving "13.233.220.64" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to 13.233.220.64 [13.233.220.64] port 22.
debug1: connect to address 13.233.220.64 port 22: Connection timed out
ssh: connect to Host 13.233.220.64 port 22: Connection timed out
1
st_rt_dl_8