-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 2013-12-05 8:15, Andrew Wilkins wrote:
> So, synchronous bootstrap broke CI. The reason for this is that
> we're now using SSH as part of the process; I can see in the CI
> logs that a non-default identity file is being used with "juju
> scp". That explains why "juju ssh" (during bootstrap) is failing --
> it just tries the default keys.
> 
> To workaround, CI could specify the key in ~/.ssh/config (see
> https://bugs.launchpad.net/juju-core/+bug/1257371/comments/9). To 
> fix the problem for good, we can do a couple of things: - Add yet
> more configuration to Juju to specify which key to connect with, or
> (and/or?) - Auto-generate an SSH key for each new environment at
> bootstrap.
> 
> The second option is far more user-friendly IMHO; the less
> configuration the better. Is there any reason why we should not do
> this? If we did this, then "authorized-keys" would be changed to
> implicitly include the auto-generated public key.

Writing stuff outside of ~/.juju isn't great behavior, but we could
put the SSH key there. We could probably write the ssh private key
into the .jenv and pull it out to hand off to the SSH subprocess.
Though if we actually start getting into that, then whether you're
using OpenSSH or SunSSH or  Putty or any of a number of SSH
implementations starts to complicate things.

So *if* you don't configure anything (don't set non-standard SSH keys)
we already just read your ~/.ssh/id_rsa.pub and set that as the SSH
key and use it. Which SSH will just pick up and use when connecting to
the machine. As such, I think auto-generating keys is *way* overkill.

I think for ssh keys we can go with either:

a) If you want to set a special authorized-key line, then you should
configure ~/.ssh/config to match it (and if you don't set a special
one, then we use your default pub key which should match your default
private key.)

b) We allow people to specify a private key file to use when connecting.


There is also another problem in the synchronous bootstrap case, which
is Canonistack. Most people have configured the bounce-via-chinstrap
for it, so ssh actually JustWorks, but you *won't* be able to directly
dial port 22 (or the API server, etc). In the past, what was common
was to 'juju bootstrap' and then use 'sshuttle' *to the bootstrap
node*. Otherwise what machine do you have to sshuttle forward for you?

I think we might consider making it possible to configure a proxy
command that can be run before we start trying to connect to the
bootstrap machine.

> 
> On a related note, it occurred to me that the Windows CLI won't be
> able to bootstrap anymore. We're going to need to update the code
> to use the plink executable from PuTTY.

It would be nice if you could use 'ssh' if it was available. *I* have
it configured already with my keys, etc (openssh from cygwin).

We had a bunch of discussions in Bazaar about this in the past. What
we should have ended up (that I originally objected to, but I was
wrong) was to use the bundled Paramiko (in-process ssh library) by
default.

So I'd like to see it something that a user could configure (Bazaar
used BZR_SSH which could be a name like 'openssh' or a path to an
executable), but had a sane built-in version.


> 
> Cheers, Andrew
> 
> 

John
=:->
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.13 (Cygwin)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iEYEARECAAYFAlKgC9wACgkQJdeBCYSNAANYbACeIpl2pwDL7jVwH75bzVK1OB9H
cAQAmQHf2IFiVw5/Wrc9af9zduPvNp90
=Ix8d
-----END PGP SIGNATURE-----

-- 
Juju-dev mailing list
Juju-dev@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/juju-dev

Reply via email to