Hi Dave, 2012/11/14 Dave Cahill <dcah...@midokura.jp>: > Hi, > > I've recently been running the management server from source using mvn -pl > :cloud-client-ui jetty:run, and I've come across an issue. > > If the "ssh.privatekey" configuration entry is not present in the > management server db, then in ConfigurationServerImpl: > > Line 592: > File privkeyfile = new File(homeDir + "/.ssh/id_rsa"); > > Line 600: > Script.runSimpleBashScript("if [ -f " + privkeyfile + " ]; then rm > -f " + privkeyfile + "; fi; ssh-keygen -t rsa -N '' -f " + privkeyfile + " > -q"); > > In other words, the user who is running the management server will have > their *default* public / private keys deleted and recreated. > > I know that many people run the management server as the "cloud" user, so > perhaps they don't mind their SSH keys being overwritten in this case. > However, when developing, it's handy to run as one's usual user, and having > your default SSH keys blown away seems like really bad (and unexpected) > behaviour - any servers (e.g. GitHub) where you have your public key > registered will become inaccessible to you. > > I can see a few possibilities: > * The management server should never, even in development, be run as a user > other than cloud > - In this case, we need to make this very clear in dev docs - current > development mode docs mention nothing about creating a special user to run > as > - We need to remove the developer mode option, which is currently on by > default if you deploy the db using mvn -P developer -pl developer -Ddeploydb > - Given what I know so far, I disagree with this option; the behaviour > seems weird even for the "cloud" user, and someone will certainly try to > run as their own user even if we recommend against it > * The management server should back up old ssh keys before deleting them > - Better than nothing, but non-ideal; unless the user realizes what > happened, this will not help them > * The management server should use existing ssh keys if available, instead > of recreating > - This sounds like a good option - may cause issues if the existing keypair > is password-protected? > * The management server should use a non-default filename for the ssh keys, > e.g. id_rsa.systemvm and id_rsa.pub.systemvm, to avoid damaging existing > SSH keys > - This option seems ideal from my point of view, but may involve extra work
+1 for a non-default filename ssh key idea. I think that it is dangerous that a default ssh key is overwritten even if it adopts other ideas. > > Does anyone have an opinion on this? > > Thanks, > Dave.