Using juju ssh from windows clients

Martin Packman martin.packman at canonical.com
Fri Oct 28 14:13:00 UTC 2016


Looking at juju ssh session from windows client bug:

<https://bugs.launchpad.net/juju-core/+bug/1468752>

The core issue is simple. We pass stdin straight over the ssh
connection, without coping with it being a windows text stream. So
lines are terminated with '\r\n' rather than just '\n', which then
confuses bash on the remote machine.

I have made a test build that basically wraps stdin with a translation
that strips \r characters before passing it through to the native go
ssh implementation. Obviously this doesn't give us full terminal
capabilities, but may be good enough. Are there any pitfalls I'm
missing here?

Background is juju traditionally, and still in practice on most nix
systems, will shell out to openssh client to connect to machines.
That's not an option on windows, but the fallback golang crypto
library can be used instead. That lacks a bunch of capabilities, and
is somewhat undertested.

What doesn't work:
* interactive sessions
* --proxy argument
* scp

What does work:
* single commands over ssh
* interactive sessions from cygwin

Amusingly, installing python, then doing `juju ssh $MACHINE python -i`
and ending every line with a comment sort of gets you a working remote
shell. Fixing this bug means the basic bash session is more usable
from the windows cmd prompt, though without all the nice bash features
exposed.

Martin



More information about the Juju-dev mailing list