23

So I'm using the "Remote - SSH" plugin in VSCode to connect to my VPS and edit my code. I lost the connection, then had to hard-reset it after 30+ min. Now I can't access it with VSCode anymore [putty works] and get Could not establish connection to "[vps-ip]". Permission denied (publickey,password). when starting VSCode in ssh up or when reloading the connection.

I also get this log every time.

What would I have to do, to get this to work normally again?

Here is the log I replaced some stuff with [...]

[18:42:52.792] Log Level: 2
[18:42:52.795] remote-ssh@0.50.0
[18:42:52.795] win32 x64
[18:42:52.797] SSH Resolver called for "ssh-remote+[vps-ip]", attempt 1
[18:42:52.797] SSH Resolver called for host: [vps-ip]
[18:42:52.798] Setting up SSH remote "[vpsip]"
[18:42:52.801] Acquiring local install lock: C:\Users\[myname]\AppData\Local\Temp\vscode-remote-ssh-[vps-ip]-install.lock
[18:42:52.816] Looking for existing server data file at c:\Users\[myname]\AppData\Roaming\Code\User\globalStorage\ms-vscode-remote.remote-ssh\vscode-ssh-host-[vps-ip]-[id]\data.json
[18:42:52.817] Using commit id "[id]" and quality "stable" for server
[18:42:52.817] Install and start server if needed
[18:42:52.820] Checking ssh with "ssh -V"
[18:42:52.875] > OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
[18:42:52.876] Checking ssh with "C:\WINDOWS\System32\OpenSSH\ssh.exe -V"
[18:42:52.917] > OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
[18:42:52.917] Checking ssh with "C:\Program Files\Git\usr\bin\ssh.exe -V"
[18:42:52.993] > OpenSSH_8.1p1, OpenSSL 1.1.1d  10 Sep 2019
[18:42:52.994] askpass server listening on \\.\pipe\vscode-ssh-askpass-[askpass]-sock
[18:42:52.995] Spawning local server with {"ipcHandlePath":"\\\\.\\pipe\\vscode-ssh-askpass-[askpass]-sock","sshCommand":"C:\\Program Files\\Git\\usr\\bin\\ssh.exe","sshArgs":["-v","-T","-D","55323","[vps-ip]"],"dataFilePath":"c:\\Users\\[myname]\\AppData\\Roaming\\Code\\User\\globalStorage\\ms-vscode-remote.remote-ssh\\vscode-ssh-host-[vps-ip]-[id]\\data.json"}
[18:42:52.995] Local server env: {"DISPLAY":"1","ELECTRON_RUN_AS_NODE":"1","SSH_ASKPASS":"c:\\Users\\[myname]\\.vscode\\extensions\\ms-vscode-remote.remote-ssh-0.50.0\\out\\local-server\\askpass.bat","VSCODE_SSH_ASKPASS_NODE":"C:\\Users\\[myname]\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe","VSCODE_SSH_ASKPASS_MAIN":"c:\\Users\\[myname]\\.vscode\\extensions\\ms-vscode-remote.remote-ssh-0.50.0\\out\\askpass-main.js","VSCODE_SSH_ASKPASS_HANDLE":"\\\\.\\pipe\\vscode-ssh-askpass-[askpass]-sock"}
[18:42:53.021] Spawned 30572
[18:42:53.125] > local-server> Spawned ssh: 12024
[18:42:53.165] stderr> OpenSSH_8.1p1, OpenSSL 1.1.1d  10 Sep 2019
[18:42:53.359] stderr> debug1: Server host key: [the key]
[18:42:53.558] stderr> 'C:\Users\[only my sirname]' is not recognized as an internal or external command,
[18:42:53.558] stderr> operable program or batch file.
[18:42:53.607] stderr> Permission denied, please try again.
[18:42:53.638] stderr> 'C:\Users\[only my sirname]' is not recognized as an internal or external command,
[18:42:53.638] stderr> operable program or batch file.
[18:42:53.686] stderr> Permission denied, please try again.
[18:42:53.716] stderr> 'C:\Users\[only my sirname]' is not recognized as an internal or external command,
[18:42:53.716] stderr> operable program or batch file.
[18:42:53.767] stderr> root@[vps-ip]: Permission denied (publickey,password).
[18:42:53.771] > local-server> ssh child died, shutting down
[18:42:53.779] Local server exit: 0
[18:42:53.780] Received install output: OpenSSH_8.1p1, OpenSSL 1.1.1d  10 Sep 2019
debug1: Server host key: [key]
'C:\Users\[only my sirname]' is not recognized as an internal or external command,
operable program or batch file.
Permission denied, please try again.
'C:\Users\[only my sirname]' is not recognized as an internal or external command,
operable program or batch file.
Permission denied, please try again.
'C:\Users\[only my sirname]' is not recognized as an internal or external command,
operable program or batch file.
root@[vps-ip]: Permission denied (publickey,password).

[18:42:53.781] Resolver error: Permission denied (publickey,password).
[18:42:53.783] ------

EDIT2: So apparently this is a problem only occurring on one of my PCs and reinstalling doesn't help

Naxey
  • 396
  • 1
  • 3
  • 12

10 Answers10

8

Solved! For most people, the issue is that you did not make the .pem file executable. You need to chmod 400 yourkey.pem for mac, I think 755 for linux, not sure about windows, then move the key into your ssh folder mv yourkey.pem ~/.ssh

Then configure your vscode ssh config file as such.

Host YourHost
   HostName ec32-364-207-287-109.compute-1.amazonaws.com
   User ubuntu
   IdentityFile ~/.ssh/yourkey.pem
CryptoDevWill
  • 109
  • 1
  • 2
5

It seems that the remote ssh extension version 0.50.0 broke something related to this. See the issue I opened on the Github: https://github.com/microsoft/vscode-remote-release/issues/2581

As a workaround, using version 0.49.0 works for me. Do this by right-clicking the extension name and clicking "Install another version...", and select 0.49.0 in the dialogue. Hopefully this gets resolved in a minor version update.

  • This workaround resolved my issue, but unsure if my issue is similar. My issue is, I'm using Remote SSH extension 0.51.0 in VS Code 1.44.2 on Ubuntu Linux. The extension is still broken for me, and I received error pointing to "ssh_askpass ms-vscode-remote.remote-ssh.sh Permission denied". I cannot enter my key password even though I have set "remote.SSH.showLoginTerminal: true" in settings.json. – cedrickchee May 02 '20 at 14:13
  • It did not work in version 0.66.0. I updated to version 0.66.1 and it works now. – Caleb Hillary Nov 30 '21 at 09:34
4

I had the same issue with version 0.49+ of Remote SSH on vscode. What I did was cmd-p > Connect To SSH Host > Configure SSH HOSTS and within my config file I noticed I had two entries:

Host <ip>
HostName <name>
User <gungoonsoundcloudwhatsup>
IdentityFile ~/.ssh/file.pub

Host <ip>
HostName <name>
User <gungoonsoundcloudwhatsup>
IdentityFile ~/.ssh/file.pub

So I deleted one and changed the IdentityFile from the .pub file to the appropriate rsa.

That did the trick for me.

gun.go
  • 113
  • 5
2

This may interest anyone who's been having the issue recently. I'm running the latest VS Code at the time (version 1.74.3 from the 2023-01-09 update).

What I did:

  1. Opened the Command Palette
  2. Selected Remote-SSH: Connect to Host...
  3. Typed in: ssh user@host, and on other attempts: ssh host

After several unsuccessful attempts to log in and still receiving the error posted, I noticed the Command Palette prompt's greyed-out instruction mentioned "... or enter user@host". Considering that this instruction may have been altered from previous versions of VS Code, I changed my command accordingly. I dropped the "ssh" part of the command and this worked: user@host

Arn
  • 21
  • 5
1

Below is the config I used which works for me.

Host vs-ssh.visualstudio.com
HostName vs-ssh.visualstudio.com
User git
IdentityFile file_path
IdentitiesOnly yes
Sathishkumar Rakkiyasamy
  • 3,509
  • 2
  • 30
  • 34
1

In my case, I had to add User prop to the ssh config because it is using my current device's account name (nemothecollector) while root is correct account name.

Host digital-ocean-vps-as-root
+   User root
    HostName 157.245.150.193
    IdentityFile ~/.ssh/digital_ocean_vps
    IdentitiesOnly yes
    Port 22
Phạm Huy Phát
  • 783
  • 9
  • 17
1

For me, the issue was the IdentityFile path. On the command line, I simply gave the name of the .pem file. VS Code needs the ~/.ssh/config file to provide the absolute path. Additionally, my key had spaces in it. So I had to wrap the absolute path in quotes, like this: "~/.ssh/key with spaces". Using the $HOME variable didn't work for me. Hope this helps someone.

0

it might be caused by low time_out in the setting of VSCODE Extension. You can increase that and try again: ctrl + , then find REMOTE SSH under the extension section and increase Connect Timeout to 60 maybe.

mossishahi
  • 123
  • 4
0

Spent an hour on this problem.

I have but one advice.

Double check your username and/or IP address.

Ate Somebits
  • 287
  • 1
  • 18
0

After spending more than 3 hours I found the solution. For those who are using the DigitalOcean droplets, you need to change the "authorized_keys" on your droplet manually, even if you add your ssh public key to the settings it won't be added to your droplet.

Here is what you need to do:

1 - if you have already access to the droplet from another machine use it, otherwise you can use the browser console from your dahsboard.

2 - you need to add your ssh key on this file: ~/.ssh/authorized_keys just do sudo nano ~/.ssh/authorized_keys and add your ssh key.

3 - Restart the ssh service with sudo systemctl reload ssh

And that's it! I hope I solved someone's problem.

source: https://serverfault.com/questions/938870/permission-denied-publickey-mac

Have a nice day.