how to set tssh as vscode default tools when create a new remote window?
Opened this issue · 10 comments
I have tried change ”remote.SSH.path“ to "C:\Users\wyjbot\AppData\Local\Microsoft\WinGet\Links\tssh.exe" .but it not work
What is your purpose of using tssh in vscode?
If you want to use trzsz in the vscode terminal, modifying remote.SSH.path is not supported. You can open a local shell first, and use tssh in the local shell to log in to the server, which will support trzsz.
If you want to use tssh's automated-interaction feature to log in to the server, you need to write a script and change remote.SSH.path to the script.
- tssh.sh ( on MacOS, Linux, etc... )
#!/bin/bash
# vscode requires -V to output OpenSSH
if [[ " $@ " =~ " -V " ]]; then
echo "OpenSSH"
exit 0
fi
# replace -v with --debug
args=()
for arg in "$@"; do
if [ "$arg" != "-v" ]; then
args+=("$arg")
else
args+=("--debug")
fi
done
# call tssh
tssh "${args[@]}"
- tssh.bat ( on Windows )
@echo off
setlocal enabledelayedexpansion
rem vscode requires -V to output OpenSSH
for %%A in (%*) do (
if "%%A"=="-V" (
echo OpenSSH
exit /b 0
)
)
rem replace -v with --debug
set args=
for %%A in (%*) do (
if "%%A"=="-v" (
set args=!args! --debug
) else (
set args=!args! %%A
)
)
rem call tssh
tssh %args%
Is this normal on your win? I still can't bring up win11 file browser to upload. I suspect that vscode remote.SSH.path does not take effect
If you want to use trzsz in the vscode terminal, modifying remote.SSH.path is not supported.
trzsz ( trz / tsz ) is not supported even you set remote.SSH.path
to tssh.bat
.
After you log in to the remote server in vscode, execute the following command in Windows PowerShell:
Get-WmiObject Win32_Process | Where-Object { $_.CommandLine -like '*tssh*' } | Select-Object ProcessId, CommandLine
You will see the output similar to this:
tssh -T -D 55648 xxx bash
When you open multiple remote terminals in vscode, the number of ssh processes will not increase.
That's because each terminal in vscode is implemented by vscode itself through -D
dynamic port forwarding.
tssh cannot capture the input and output of each terminal in vscode, so it cannot support trzsz.
fine.
-
I use my company's file transfer tool called "ift". it could use in vscode, I don't know detail about how it execute. the problem is it only available for company‘s server and need Employee authentication.
-
just for using automated-interaction tssh.bat. it report below bug.
[10:58:44.985] "remote.SSH.path": D:\tssh.bat
[10:58:44.985] "remote.SSH.configFile": undefined
[10:58:44.985] "remote.SSH.useFlock": true
[10:58:44.985] "remote.SSH.lockfilesInTmp": false
[10:58:44.985] "remote.SSH.localServerDownload": auto
[10:58:44.985] "remote.SSH.remoteServerListenOnSocket": false
[10:58:44.985] "remote.SSH.showLoginTerminal": true
[10:58:44.986] "remote.SSH.defaultExtensions": []
[10:58:44.986] "remote.SSH.loglevel": 1
[10:58:44.986] "remote.SSH.enableDynamicForwarding": true
[10:58:44.986] "remote.SSH.enableRemoteCommand": false
[10:58:44.986] "remote.SSH.serverPickPortsFromRange": {}
[10:58:44.986] "remote.SSH.serverInstallPath": {}
[10:58:44.986] "remote.SSH.permitPtyAllocation": true
[10:58:44.986] "remote.SSH.preferredLocalPortRange: undefined
[10:58:44.986] "remote.SSH.useCurlAndWgetConfigurationFiles: false
[10:58:44.991] VS Code version: 1.92.0
[10:58:44.991] Remote-SSH version: remote-ssh@0.113.2024072315
[10:58:44.991] win32 x64
[10:58:44.999] SSH Resolver called for host: ptm
[10:58:44.999] Setting up SSH remote "ptm"
[10:58:45.002] Using commit id "b1c0a14de1414fcdaa400695b4db1c0799bc3124" and quality "stable" for server
[10:58:45.004] Install and start server if needed
[10:58:45.006] Checking ssh with "D:\tssh.bat -V"
[10:58:45.007] Finding installed ssh failed: spawn EINVAL
[10:58:45.008] Resolver error: Error: spawn EINVAL
at ChildProcess.spawn (node:internal/child_process:421:11)
at Object.spawn (node:child_process:799:9)
at c:\Users\wyjbot\.vscode\extensions\ms-vscode-remote.remote-ssh-0.113.2024072315\out\extension.js:2:589529
at new Promise (<anonymous>)
at R (c:\Users\wyjbot\.vscode\extensions\ms-vscode-remote.remote-ssh-0.113.2024072315\out\extension.js:2:589449)
at k (c:\Users\wyjbot\.vscode\extensions\ms-vscode-remote.remote-ssh-0.113.2024072315\out\extension.js:2:589400)
at A (c:\Users\wyjbot\.vscode\extensions\ms-vscode-remote.remote-ssh-0.113.2024072315\out\extension.js:2:592580)
at T (c:\Users\wyjbot\.vscode\extensions\ms-vscode-remote.remote-ssh-0.113.2024072315\out\extension.js:2:589171)
at C (c:\Users\wyjbot\.vscode\extensions\ms-vscode-remote.remote-ssh-0.113.2024072315\out\extension.js:2:589076)
at t.generateMultiLineCommand (c:\Users\wyjbot\.vscode\extensions\ms-vscode-remote.remote-ssh-0.113.2024072315\out\extension.js:2:590768)
at t.generateSshCommand (c:\Users\wyjbot\.vscode\extensions\ms-vscode-remote.remote-ssh-0.113.2024072315\out\extension.js:2:623446)
at c:\Users\wyjbot\.vscode\extensions\ms-vscode-remote.remote-ssh-0.113.2024072315\out\extension.js:2:582869
at async t.withShowDetailsEvent (c:\Users\wyjbot\.vscode\extensions\ms-vscode-remote.remote-ssh-0.113.2024072315\out\extension.js:2:586054)
at async k (c:\Users\wyjbot\.vscode\extensions\ms-vscode-remote.remote-ssh-0.113.2024072315\out\extension.js:2:579675)
at async t.resolve (c:\Users\wyjbot\.vscode\extensions\ms-vscode-remote.remote-ssh-0.113.2024072315\out\extension.js:2:583465)
at async c:\Users\wyjbot\.vscode\extensions\ms-vscode-remote.remote-ssh-0.113.2024072315\out\extension.js:2:851047
[10:58:45.010] TELEMETRY: {"eventName":"resolver","properties":{"osReleaseId":"","arch":"","askedPw":"0","askedPassphrase":"0","asked2fa":"0","askedHostKey":"0","remoteInConfigFile":"1","gotUnrecognizedPrompt":"0","dynamicForwarding":"1","localServer":"0","didLocalDownload":"0","installUnpackCode":"0","outcome":"failure","reason":"Unknown","exitCodeLabel":""},"measures":{"resolveAttempts":1,"isExecServer":0,"timing.totalResolveTime":23}}
[10:58:45.012] ------
[10:58:45.245] Opening exec server for ssh-remote+ptm
[10:58:45.263] Initizing new exec server for ssh-remote+ptm
[10:58:45.264] Using commit id "b1c0a14de1414fcdaa400695b4db1c0799bc3124" and quality "stable" for server
[10:58:45.266] Install and start server if needed
[10:58:45.272] Checking ssh with "D:\tssh.bat -V"
[10:58:45.272] Finding installed ssh failed: spawn EINVAL
[10:58:45.273] Exec server for ssh-remote+ptm failed: Error: spawn EINVAL
[10:58:45.273] Error opening exec server for ssh-remote+ptm: Error: spawn EINVAL
What will be the output of executing D:\tssh.bat -V
in PowerShell?
OpenSSH
The weird thing is that vscode will report an error spawn EINVAL
.
It may be a permission issue, can you try C:\tssh.bat
?
even i directly run it in vsocde bottom terminal:
PS C:\Users\wyjbot> C:\tssh.bat -V
OpenSSH
PS C:\Users\wyjbot> D:\tssh.bat -V
OpenSSH
The output OpenSSH
is as expected, I mean try setting remote.SSH.path
to C:\tssh.bat
.
- I use my company's file transfer tool called "ift". it could use in vscode, I don't know detail about how it execute. the problem is it only available for company‘s server and need Employee authentication.
The ift
may not be implemented through the ssh connection, but through other connection and authentication.