-
Notifications
You must be signed in to change notification settings - Fork 21
Description
TL;DR: this is not very high priority because the upshot of the below discussion is that things are already working basically the way they're going to work. The biggest improvement we can make to the create instance form is informing the user that if they have SSH keys, they will be set on the instance they are creating, and no other keys will be (by default).
On top of that basic improvement, we could make it easy to pop open a modal to add keys if they don't already have any, or we could avoid that by linking to the SSH keys page and telling them to do it there. Of course, if they've already filled out the whole form, it would be annoying to leave and lose their progress.
Had a good discussion in the control plane channel about how SSH keys work on instances. Some excerpts:
Ben: Right now, it's just the SSH key for the user that creates the machine.
dap: I've assumed (maybe wrongly) that most people are going to want to manage ssh keys in some other way, and this is really for bootstrapping, demo'ing, or playing around
iliana: today, every tool that works with AWS has to assume that there is zero or one SSH key associated with a launched instance
This question came up yesterday at the product eng team sync while we were discussing the old Figma used for customer demos, which had an SSH field right on the instance create form.
As Dave pointed out, this is not really a core feature for everyday use, but rather more for getting started and doing demos. Most of the time we would expect the current user to already have a key configured, in which case they would not be adding one — we would show it and say "FYI you have an SSH key and it will be set on the machine unless you say otherwise". Or as Iliana put it:
iliana: "you have SSH keys configured; these will be the only ones on the instance and you have to add other SSH keys through some other means" is not a good sentence but is more or less what we'll need to communicate
The long term vision would be to manage SSH keys in a more elaborate way, checking if a given user has access to the instance at login time and syncing their SSH keys to the machine at that time:
rm: the longer term goal was to leverage the authorized keys plugin to reach back over metadata and ask if authorized so we didn't get into both the stomping/fighting and security issues that gcp had with their push based approach
However most enterprise customers are probably doing this themselves already and it is reasonable for them to continue to do so.
iliana: a lot of people currently using the cloud are going to be used to the current model of booting linux machines, which is that you optionally have an SSH key for bootstrapping the instance and then you set something else up during that bootstrapping
or you make your own image which already has your user management dingus set up

