Skip to content

Commit 9917621

Browse files
committed
chore: use background hostname for admin tasks
1 parent 82849ba commit 9917621

20 files changed

+153
-4
lines changed

src/main/kotlin/com/coder/gateway/CoderRemoteConnectionHandle.kt

+7-1
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,13 @@ class CoderRemoteConnectionHandle {
141141
port = 22
142142
authType = AuthType.OPEN_SSH
143143
}
144-
val accessor = HighLevelHostAccessor.create(credentials, true)
144+
val backgroundCredentials = RemoteCredentialsHolder().apply {
145+
setHost(workspace.hostname)
146+
userName = "coder"
147+
port = 22
148+
authType = AuthType.OPEN_SSH
149+
}
150+
val accessor = HighLevelHostAccessor.create(backgroundCredentials, true)
145151

146152
// Deploy if we need to.
147153
val ideDir = this.deploy(workspace, accessor, indicator, timeout)

src/main/kotlin/com/coder/gateway/cli/CoderCLIManager.kt

+17-2
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,6 @@ class CoderCLIManager(
256256
val isRemoving = workspaceNames.isEmpty()
257257
val proxyArgs =
258258
listOfNotNull(
259-
"CODER_SSH_USAGE_APP=jetbrains",
260259
escape(localBinaryPath.toString()),
261260
"--global-config",
262261
escape(coderConfigPath.toString()),
@@ -280,7 +279,15 @@ class CoderCLIManager(
280279
transform = {
281280
"""
282281
Host ${getHostName(deploymentURL, it)}
283-
ProxyCommand ${proxyArgs.joinToString(" ")} $it
282+
ProxyCommand CODER_SSH_USAGE_APP=jetbrains ${proxyArgs.joinToString(" ")} $it
283+
ConnectTimeout 0
284+
StrictHostKeyChecking no
285+
UserKnownHostsFile /dev/null
286+
LogLevel ERROR
287+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
288+
289+
Host ${getBackgroundHostName(deploymentURL, it)}
290+
ProxyCommand CODER_SSH_USAGE_APP=disable ${proxyArgs.joinToString(" ")} $it
284291
ConnectTimeout 0
285292
StrictHostKeyChecking no
286293
UserKnownHostsFile /dev/null
@@ -463,5 +470,13 @@ class CoderCLIManager(
463470
): String {
464471
return "coder-jetbrains--$workspaceName--${url.safeHost()}"
465472
}
473+
474+
@JvmStatic
475+
fun getBackgroundHostName(
476+
url: URL,
477+
workspaceName: String,
478+
): String {
479+
return getHostName(url, workspaceName) + "--bg"
480+
}
466481
}
467482
}

src/main/kotlin/com/coder/gateway/views/steps/CoderWorkspaceProjectIDEStepView.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ class CoderWorkspaceProjectIDEStepView(
214214
} else {
215215
IDECellRenderer(CoderGatewayBundle.message("gateway.connector.view.coder.connect-ssh"))
216216
}
217-
val executor = createRemoteExecutor(CoderCLIManager.getHostName(data.client.url, name))
217+
val executor = createRemoteExecutor(CoderCLIManager.getBackgroundHostName(data.client.url, name))
218218

219219
if (ComponentValidator.getInstance(tfProject).isEmpty) {
220220
logger.info("Installing remote path validator...")

src/test/fixtures/outputs/append-blank-newlines.conf

+7
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,11 @@ Host coder-jetbrains--foo-bar--test.coder.invalid
1010
UserKnownHostsFile /dev/null
1111
LogLevel ERROR
1212
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
13+
Host coder-jetbrains--foo-bar--test.coder.invalid--bg
14+
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio foo-bar
15+
ConnectTimeout 0
16+
StrictHostKeyChecking no
17+
UserKnownHostsFile /dev/null
18+
LogLevel ERROR
19+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
1320
# --- END CODER JETBRAINS test.coder.invalid

src/test/fixtures/outputs/append-blank.conf

+7
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,11 @@ Host coder-jetbrains--foo-bar--test.coder.invalid
66
UserKnownHostsFile /dev/null
77
LogLevel ERROR
88
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
9+
Host coder-jetbrains--foo-bar--test.coder.invalid--bg
10+
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio foo-bar
11+
ConnectTimeout 0
12+
StrictHostKeyChecking no
13+
UserKnownHostsFile /dev/null
14+
LogLevel ERROR
15+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
916
# --- END CODER JETBRAINS test.coder.invalid

src/test/fixtures/outputs/append-no-blocks.conf

+7
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,11 @@ Host coder-jetbrains--foo-bar--test.coder.invalid
1111
UserKnownHostsFile /dev/null
1212
LogLevel ERROR
1313
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
14+
Host coder-jetbrains--foo-bar--test.coder.invalid--bg
15+
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio foo-bar
16+
ConnectTimeout 0
17+
StrictHostKeyChecking no
18+
UserKnownHostsFile /dev/null
19+
LogLevel ERROR
20+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
1421
# --- END CODER JETBRAINS test.coder.invalid

src/test/fixtures/outputs/append-no-newline.conf

+7
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,11 @@ Host coder-jetbrains--foo-bar--test.coder.invalid
1010
UserKnownHostsFile /dev/null
1111
LogLevel ERROR
1212
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
13+
Host coder-jetbrains--foo-bar--test.coder.invalid--bg
14+
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio foo-bar
15+
ConnectTimeout 0
16+
StrictHostKeyChecking no
17+
UserKnownHostsFile /dev/null
18+
LogLevel ERROR
19+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
1320
# --- END CODER JETBRAINS test.coder.invalid

src/test/fixtures/outputs/append-no-related-blocks.conf

+7
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,11 @@ Host coder-jetbrains--foo-bar--test.coder.invalid
1717
UserKnownHostsFile /dev/null
1818
LogLevel ERROR
1919
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
20+
Host coder-jetbrains--foo-bar--test.coder.invalid--bg
21+
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio foo-bar
22+
ConnectTimeout 0
23+
StrictHostKeyChecking no
24+
UserKnownHostsFile /dev/null
25+
LogLevel ERROR
26+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
2027
# --- END CODER JETBRAINS test.coder.invalid

src/test/fixtures/outputs/disable-autostart.conf

+7
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,11 @@ Host coder-jetbrains--foo--test.coder.invalid
66
UserKnownHostsFile /dev/null
77
LogLevel ERROR
88
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
9+
Host coder-jetbrains--foo--test.coder.invalid--bg
10+
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio --disable-autostart foo
11+
ConnectTimeout 0
12+
StrictHostKeyChecking no
13+
UserKnownHostsFile /dev/null
14+
LogLevel ERROR
15+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
916
# --- END CODER JETBRAINS test.coder.invalid

src/test/fixtures/outputs/extra-config.conf

+9
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,13 @@ Host coder-jetbrains--extra--test.coder.invalid
88
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
99
ServerAliveInterval 5
1010
ServerAliveCountMax 3
11+
Host coder-jetbrains--extra--test.coder.invalid--bg
12+
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio extra
13+
ConnectTimeout 0
14+
StrictHostKeyChecking no
15+
UserKnownHostsFile /dev/null
16+
LogLevel ERROR
17+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
18+
ServerAliveInterval 5
19+
ServerAliveCountMax 3
1120
# --- END CODER JETBRAINS test.coder.invalid

src/test/fixtures/outputs/header-command-windows.conf

+7
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,11 @@ Host coder-jetbrains--header--test.coder.invalid
66
UserKnownHostsFile /dev/null
77
LogLevel ERROR
88
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
9+
Host coder-jetbrains--header--test.coder.invalid--bg
10+
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config --header-command "\"C:\Program Files\My Header Command\HeaderCommand.exe\" --url=\"%%CODER_URL%%\" --test=\"foo bar\"" ssh --stdio header
11+
ConnectTimeout 0
12+
StrictHostKeyChecking no
13+
UserKnownHostsFile /dev/null
14+
LogLevel ERROR
15+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
916
# --- END CODER JETBRAINS test.coder.invalid

src/test/fixtures/outputs/header-command.conf

+7
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,11 @@ Host coder-jetbrains--header--test.coder.invalid
66
UserKnownHostsFile /dev/null
77
LogLevel ERROR
88
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
9+
Host coder-jetbrains--header--test.coder.invalid--bg
10+
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config --header-command 'my-header-command --url="$CODER_URL" --test="foo bar" --literal='\''$CODER_URL'\''' ssh --stdio header
11+
ConnectTimeout 0
12+
StrictHostKeyChecking no
13+
UserKnownHostsFile /dev/null
14+
LogLevel ERROR
15+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
916
# --- END CODER JETBRAINS test.coder.invalid

src/test/fixtures/outputs/multiple-workspaces.conf

+14
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,25 @@ Host coder-jetbrains--foo--test.coder.invalid
66
UserKnownHostsFile /dev/null
77
LogLevel ERROR
88
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
9+
Host coder-jetbrains--foo--test.coder.invalid--bg
10+
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio foo
11+
ConnectTimeout 0
12+
StrictHostKeyChecking no
13+
UserKnownHostsFile /dev/null
14+
LogLevel ERROR
15+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
916
Host coder-jetbrains--bar--test.coder.invalid
1017
ProxyCommand CODER_SSH_USAGE_APP=jetbrains /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio bar
1118
ConnectTimeout 0
1219
StrictHostKeyChecking no
1320
UserKnownHostsFile /dev/null
1421
LogLevel ERROR
1522
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
23+
Host coder-jetbrains--bar--test.coder.invalid--bg
24+
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio bar
25+
ConnectTimeout 0
26+
StrictHostKeyChecking no
27+
UserKnownHostsFile /dev/null
28+
LogLevel ERROR
29+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
1630
# --- END CODER JETBRAINS test.coder.invalid

src/test/fixtures/outputs/no-disable-autostart.conf

+7
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,11 @@ Host coder-jetbrains--foo--test.coder.invalid
66
UserKnownHostsFile /dev/null
77
LogLevel ERROR
88
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
9+
Host coder-jetbrains--foo--test.coder.invalid--bg
10+
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio foo
11+
ConnectTimeout 0
12+
StrictHostKeyChecking no
13+
UserKnownHostsFile /dev/null
14+
LogLevel ERROR
15+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
916
# --- END CODER JETBRAINS test.coder.invalid

src/test/fixtures/outputs/replace-end-no-newline.conf

+7
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,11 @@ Host coder-jetbrains--foo-bar--test.coder.invalid
99
UserKnownHostsFile /dev/null
1010
LogLevel ERROR
1111
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
12+
Host coder-jetbrains--foo-bar--test.coder.invalid--bg
13+
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio foo-bar
14+
ConnectTimeout 0
15+
StrictHostKeyChecking no
16+
UserKnownHostsFile /dev/null
17+
LogLevel ERROR
18+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
1219
# --- END CODER JETBRAINS test.coder.invalid

src/test/fixtures/outputs/replace-end.conf

+7
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,11 @@ Host coder-jetbrains--foo-bar--test.coder.invalid
1010
UserKnownHostsFile /dev/null
1111
LogLevel ERROR
1212
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
13+
Host coder-jetbrains--foo-bar--test.coder.invalid--bg
14+
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio foo-bar
15+
ConnectTimeout 0
16+
StrictHostKeyChecking no
17+
UserKnownHostsFile /dev/null
18+
LogLevel ERROR
19+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
1320
# --- END CODER JETBRAINS test.coder.invalid

src/test/fixtures/outputs/replace-middle-ignore-unrelated.conf

+7
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,13 @@ Host coder-jetbrains--foo-bar--test.coder.invalid
1111
UserKnownHostsFile /dev/null
1212
LogLevel ERROR
1313
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
14+
Host coder-jetbrains--foo-bar--test.coder.invalid--bg
15+
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio foo-bar
16+
ConnectTimeout 0
17+
StrictHostKeyChecking no
18+
UserKnownHostsFile /dev/null
19+
LogLevel ERROR
20+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
1421
# --- END CODER JETBRAINS test.coder.invalid
1522
Host test2
1623
Port 443

src/test/fixtures/outputs/replace-middle.conf

+7
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,13 @@ Host coder-jetbrains--foo-bar--test.coder.invalid
88
UserKnownHostsFile /dev/null
99
LogLevel ERROR
1010
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
11+
Host coder-jetbrains--foo-bar--test.coder.invalid--bg
12+
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio foo-bar
13+
ConnectTimeout 0
14+
StrictHostKeyChecking no
15+
UserKnownHostsFile /dev/null
16+
LogLevel ERROR
17+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
1118
# --- END CODER JETBRAINS test.coder.invalid
1219
Host test2
1320
Port 443

src/test/fixtures/outputs/replace-only.conf

+7
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,11 @@ Host coder-jetbrains--foo-bar--test.coder.invalid
66
UserKnownHostsFile /dev/null
77
LogLevel ERROR
88
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
9+
Host coder-jetbrains--foo-bar--test.coder.invalid--bg
10+
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio foo-bar
11+
ConnectTimeout 0
12+
StrictHostKeyChecking no
13+
UserKnownHostsFile /dev/null
14+
LogLevel ERROR
15+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
916
# --- END CODER JETBRAINS test.coder.invalid

src/test/fixtures/outputs/replace-start.conf

+7
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@ Host coder-jetbrains--foo-bar--test.coder.invalid
66
UserKnownHostsFile /dev/null
77
LogLevel ERROR
88
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
9+
Host coder-jetbrains--foo-bar--test.coder.invalid--bg
10+
ProxyCommand CODER_SSH_USAGE_APP=disable /tmp/coder-gateway/test.coder.invalid/coder-linux-amd64 --global-config /tmp/coder-gateway/test.coder.invalid/config ssh --stdio foo-bar
11+
ConnectTimeout 0
12+
StrictHostKeyChecking no
13+
UserKnownHostsFile /dev/null
14+
LogLevel ERROR
15+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
916
# --- END CODER JETBRAINS test.coder.invalid
1017
Host test
1118
Port 80

0 commit comments

Comments
 (0)