Se le chiavi ssh sono chiavi RSA allora dovrebbe essere possibile costruire un tale sistema. Se qualcuno lo ha già fatto, non lo so. Se le chiavi ssh sono DSA o ECDSA, allora perdi la fortuna.
Quello che faresti è utilizzare le chiavi pubbliche RSA di tutti per crittografare il segreto condiviso che decrittografa il contenitore. openssh utilizza il proprio formato per le chiavi pubbliche, quindi è molto probabile che sia necessario convertire prima la chiave pubblica (certamente la mia versione di openssl non ha potuto leggere una chiave pubblica nel formato ssh). Il formato della chiave privata sembra essere compatibile tra openssl e openssh.
Avresti quindi bisogno di un codice client che si occupasse di decodificare il segreto condiviso e sbloccare il contenitore.
Per convertire la chiave pubblica puoi usare ssh-keygen ma hai bisogno di una versione recente, l'ho fatto in un chroot sid.
ssh-keygen -f id_rsa.pub -e -m PKCS8 > id_rsa.pub.pem
Possiamo quindi utilizzare la chiave pubblica per crittografare le cose e la chiave privata per decrittografarla usando openssl.
plugwash@debian:~$ echo this is a test | openssl rsautl -inkey /chroots/sid/id_rsa.pub.pem -pubin -encrypt > temp.rsa
plugwash@debian:~$ openssl rsautl -inkey ~/.ssh/id_rsa -decrypt < temp.rsa
Enter pass phrase for /home/plugwash/.ssh/id_rsa:
this is a test
plugwash@debian:~$
Tutto ciò che rimane è scrivere un po 'di tubature per prendere il segreto decifrato e alimentarlo in verità. Da alcuni googling per "truecrypt passphrase pipe" sembra che una semplice pipe sia sufficiente. Forse anche del codice per scegliere la copia corretta del segreto da decifrare in base alla chiave utilizzata per ottenere l'accesso.
P.S. apparentemente ci sono alcune preoccupazioni teoriche sulla sicurezza dell'utilizzo della stessa chiave RSA sia per la firma che per la crittografia, sebbene molti protocolli esistenti lo utilizzino come parte della loro progettazione.