I recently started getting the message commandline disabled when pressing the ~C escape key in ssh. I thought it must have been something to do with the server I was connected to but it turns out it was my openssh client.

screen-2023-02-06-12-23-17
After a recent update I have openssh 9.2 installed and that seems to come with the ~C command line escape sequence disabled by default. To enable it again you need to add the EnableEscapeCommandline option to your ~/.ssh/config or run the ssh command using the -o EnableEscapeCommandline=yes. This can be added as a global setting or per host and then the command line will work again.

screen-2023-02-06-12-23-57

The change is mentioned on the OpenSSH release notes for 02-02-2023:

ssh(1): add a new EnableEscapeCommandline ssh_config(5) option that
   controls whether the client-side ~C escape sequence that provides a
   command-line is available. Among other things, the ~C command-line
   could be used to add additional port-forwards at runtime.

   This option defaults to "no", disabling the ~C command-line that
   was previously enabled by default. Turning off the command-line
   allows platforms that support sandboxing of the ssh(1) client
   (currently only OpenBSD) to use a stricter default sandbox policy.

Previous Post Next Post