web-dev-qa-db-fra.com

Code Visual Studio - Extension SFTP utilisant l'authentification SSH

J'utilise l'extension vscode-sftp dans mon flux de travail Visual Studio Code pour télécharger des fichiers sur mon serveur distant, chaque fois que je clique sur Enregistrer. J'essaie d'obtenir une authentification sans mot de passe, comme je le faisais auparavant avec Sublime Text's SFTP plugin . Cependant, le problème est que pour vscode-sftp, dans le fichier sftp.json, je dois entrer mon mot de passe en tant que texte brut pour que cela fonctionne:

{
    "Host": "mysamplehost.com",
    "port": 22,
    "username": "username",
    "password": "password",
    "protocol": "sftp",
    "agent": null,
    "privateKeyPath": null,
    "passphrase": null,
    "passive": false,
    "interactiveAuth": false,
    "remotePath": "/",
    "uploadOnSave": true,
    ...
}

Cependant, si je SSH sur mon serveur, on ne me demande pas de mot de passe, car j'ai la clé SSH dans mon MacBook. Comment configurer vscode-sftp pour utiliser cette méthode d'authentification?

Je vois le commentaire suivant dans documentation , mais je ne sais pas comment le configurer:

  /**
   * string - Path to ssh-agent's UNIX socket for ssh-agent-based user authentication.
   * Windows users: set to 'pageant' for authenticating with Pageant or (actual) path to a cygwin "UNIX socket.
   */
  agent: null, 
  privateKeyPath: null, // absolute path to user private key
  passphrase: null,
  passive: false, // ftp passive mode
6
Amit

Je l'ai compris après être tombé sur ceci . Voici comment je l'ai fait. Première exécution:

$ echo $SSH_AUTH_SOCK

Entrez le chemin d'accès à agent dans votre fichier sftp.json. Entrez également le chemin de votre clé privée (fichier id_rsa). La configuration suivante a fait le tour pour moi:

"agent": "/private/tmp/com.Apple.launchd.nPw17MhOqq/Listeners",
"privateKeyPath": "/Users/amitsn/.ssh/id_rsa",
"passphrase": null,

Notez que je n'ai pas de phrase secrète, alors je l'ai laissée nulle. N'oubliez pas de remplir celui-ci si vous en avez un.

8
Amit

Tu pourrais faire ça.

"agent": "$SSH_AUTH_SOCK"
0
liximomo