I recently set up a new server with Ubuntu karmic 9.10, and when I created my home directory I chose to make it encrypted. Now, after loading my authorized_keys file into ~/.ssh, it isn't recognized because my home directory isn't decrypted until after I log in. Is there a way to make SSH keys work with encrypted home directories under Ubuntu?
|
Change this line in your sshd_config file:
And then move your authorized_keys file to /etc/ssh/your-username/authorized_keys This post documents another way to solve this. |
|||||||||||||
|
|
This solution was inspired by this post. IMHO it is much better than modifying your /etc/ssh/sshd_config since it doesn't require root access at all.
|
|||||||||||||
|
|
I just spent some time messing around with this, and the answer is that it's pretty much fundamentally impossible. It is possible to set up passwordless public-key-authenticated logins via ssh, so you don't have to type in your password to log in, but that doesn't get you anywhere, because your home directory is still encrypted. The simple fact is that your encrypted home directory is encrypted with a password*, so the only way to decrypt it is with that password. And if you're thinking that in theory it should be possible to use your ssh key to decrypt the mount passphrase upon login, that won't work because your private key is never sent to the server at all. So basically, if you want encryption, you have to use passwords. Encrypted home directories are incompatible with fingerprint logins for the same reason. *I know it's more complicated than a single password, but let's keep it simple for now. |
|||||||||||||||||||||
|
|
If you don't like modifying the default setup (I don't, I like my files to be where I expect them to be) then you might want to take a look at my post on how to do that:
In short. You put your keys in the encrypted version of your user For the lazy people like myself, here's a script to do it for you. Just run it as the normal user. No root access or permissions needed and no server configuration changes required. Pure normal user settings.
|
||||
|
|
|
You can use the more secure public key to login, and then execute the following to mount your directory after typing in your password:
Read the You shouldn't be using passwordless public-keys to login anyway. Look at ssh-agent for a better way. |
||||
|
|
ubuntutag but i don't think this problem is specific to any particular OS. – quack quixote Oct 26 '09 at 20:46authorized_keysis not accessible yet). If I launch another ssh connection, key authentication then works. – mindless.panda Dec 22 '11 at 14:58