diff --git a/src/plugins/remotelinux/linuxdevice.cpp b/src/plugins/remotelinux/linuxdevice.cpp index e2948b6f192..e95e0e753e2 100644 --- a/src/plugins/remotelinux/linuxdevice.cpp +++ b/src/plugins/remotelinux/linuxdevice.cpp @@ -976,7 +976,11 @@ LinuxDevice::LinuxDevice() d->m_terminals.removeOne(proc); }); - proc->setCommand({filePath({}), {}}); + // Empty command for ssh implies the user's shell, which would be nice in general, + // but we can't use that if we modify environment settings, as variables without + // command don't work on the ssh commandline. + const QString shell = env.toDictionary().size() == 0 ? QString() : QString("/bin/sh"); + proc->setCommand({filePath(shell), {}}); proc->setTerminalMode(TerminalMode::On); proc->setEnvironment(env); proc->setWorkingDirectory(workingDir);