@@ -132,7 +132,12 @@ func configSSH(configpath *string, remove *bool, next *bool) func(cmd *cobra.Com
132
132
}
133
133
}
134
134
135
- newConfig := makeNewConfigs (user .Username , workspacesWithProviders , privateKeyFilepath , p2p )
135
+ binPath , err := os .Executable ()
136
+ if err != nil {
137
+ return xerrors .Errorf ("Failed to get executable path: %w" , err )
138
+ }
139
+
140
+ newConfig := makeNewConfigs (binPath , user .Username , workspacesWithProviders , privateKeyFilepath , p2p )
136
141
137
142
err = os .MkdirAll (filepath .Dir (* configpath ), os .ModePerm )
138
143
if err != nil {
@@ -193,7 +198,7 @@ func writeSSHKey(ctx context.Context, client coder.Client, privateKeyPath string
193
198
return ioutil .WriteFile (privateKeyPath , []byte (key .PrivateKey ), 0600 )
194
199
}
195
200
196
- func makeNewConfigs (userName string , workspaces []coderutil.WorkspaceWithWorkspaceProvider , privateKeyFilepath string , p2p bool ) string {
201
+ func makeNewConfigs (binPath , userName string , workspaces []coderutil.WorkspaceWithWorkspaceProvider , privateKeyFilepath string , p2p bool ) string {
197
202
newConfig := fmt .Sprintf ("\n %s\n %s\n \n " , sshStartToken , sshStartMessage )
198
203
199
204
sort .Slice (workspaces , func (i , j int ) bool { return workspaces [i ].Workspace .Name < workspaces [j ].Workspace .Name })
@@ -213,24 +218,24 @@ func makeNewConfigs(userName string, workspaces []coderutil.WorkspaceWithWorkspa
213
218
}
214
219
215
220
useTunnel := workspace .WorkspaceProvider .BuiltIn && p2p
216
- newConfig += makeSSHConfig (u .Host , userName , workspace .Workspace .Name , privateKeyFilepath , useTunnel )
221
+ newConfig += makeSSHConfig (binPath , u .Host , userName , workspace .Workspace .Name , privateKeyFilepath , useTunnel )
217
222
}
218
223
newConfig += fmt .Sprintf ("\n %s\n " , sshEndToken )
219
224
220
225
return newConfig
221
226
}
222
227
223
- func makeSSHConfig (host , userName , workspaceName , privateKeyFilepath string , tunnel bool ) string {
228
+ func makeSSHConfig (binPath , host , userName , workspaceName , privateKeyFilepath string , tunnel bool ) string {
224
229
if tunnel {
225
230
return fmt .Sprintf (
226
231
`Host coder.%s
227
232
HostName coder.%s
228
- ProxyCommand coder tunnel %s 12213 stdio
233
+ ProxyCommand %s tunnel %s 12213 stdio
229
234
StrictHostKeyChecking no
230
235
ConnectTimeout=0
231
236
IdentitiesOnly yes
232
237
IdentityFile="%s"
233
- ` , workspaceName , workspaceName , workspaceName , privateKeyFilepath )
238
+ ` , workspaceName , workspaceName , binPath , workspaceName , privateKeyFilepath )
234
239
}
235
240
236
241
return fmt .Sprintf (
0 commit comments