mle-infrastructure / mle-toolbox

Lightweight Tool to Manage Distributed ML Experiments 🛠
https://mle-infrastructure.github.io/mle_toolbox/toolbox/
MIT License
3 stars 1 forks source link

Make ssh credentials secure #17

Closed RobertTLange closed 3 years ago

RobertTLange commented 3 years ago

Currently the credentials for ssh-ing into remote clusters (SGE/Slurm) have to be provided in the .toml config file in plain text. This is really bad for security reasons. Use some form of encryption/hashing and private/public key setup to store credentials.

RobertTLange commented 3 years ago

For encryption - check out these two links:

denisalevi commented 3 years ago

From a user friendliness perspective, it might be good to leave the choice about storing passwords or not to the user? You could just ask for a password every time that you connect via ssh (there are certainly people who don't want any passwordless ssh connects for security reasons). I would make sure that all ssh commands use the ~/.ssh/config configurations and point people to passwordless ssh key-pairs if they want passwordless connects. And if they don't they have to type the password everytime. Or was there a reason this doesn't work?

RobertTLange commented 3 years ago

Good point. I need to double check how the paramiko ssh client works. I don't believe that it is using ~/.ssh/config by default but you would have to manually parse it. Just for later reference - this looks like a good starting point: https://gist.github.com/liuyenting/582bcf4b0e75d3591c30af419d4ee059

And adding an option for "auto-ssh" vs manual password supply is definitely a good thing, which could also be asked/supplied in the mle-init setup command.

Only reason why it doesn't exist yet is that I didn't need/want it :smile: