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 Does anyone have an opinion on this? Thanks, Dave.