web-dev-qa-db-ja.com

暗号化されたホームでSSH公開鍵ログインを実行できません

サーバーにssh公開鍵ログインを実行できません。この問題は、自宅が暗号化されていることに関連していると思います。 Ubuntuのインストール設定で「ホームフォルダを暗号化する」オプションを選択しました。 /home/MY-USERの権限は700です。

別のワークステーションを試しましたが、すべて正常に動作します。誰かが暗号化を削除せずにこれを取り除くのを手伝ってくれたら嬉しいです。

6
lucasvscn

Ssh_configファイルで、秘密鍵を探す場所を変更できます。おそらく、/etc/ssh/keys/に新しいフォルダを作成し、そこにid_rsa秘密鍵ファイルを配置してから、ssh_configIdentityFileオプションを変更して新しい場所。そうすることで、秘密鍵を保護するための特定の対策を講じることができます。

これは、あなたがコンピュータの唯一のユーザーであることを前提としています。そうでない場合は、/etc/ssh/keys/john//etc/ssh/keys/dogbert/のようなフォルダーを作成し、IdentityFileオプションに/etc/ssh/keys/%u/id_rsaを入力できます。

9
Safado

ホームディレクトリが暗号化されている場合、sshデーモンはそのディレクトリにアクセスして、秘密鍵が公開鍵と一致するかどうかを確認できません。結局のところ、.sshフォルダーは暗号化されています。

この回避策は、暗号化されていないホームディレクトリに、authorized_keysをプレーンテキストで含む.sshフォルダーを作成することです。ただし、暗号化技術でパスワードをキーとして使用してすべてを復号化する場合でも、すべてを復号化するにはパスワードを入力する必要があります。

したがって、真のパスワードなしのログインはここでは機能しません。 (パスワードをクリアテキストのどこかに保存して、復号化プロセスに自動的に送信する場合を除きますが、これは暗号化しないよりもさらに安全ではありません。)

ホームディレクトリを暗号化するためにどのような手法を使用していますか?

更新:ubuntuはecryptfsを使用して、ログイン時に暗号化されたパーティションをマウントします(つまり、パスワードを指定するとき)。sshに.sshフォルダーを再度検索させるには、次のようにします。

# copy your .ssh folder 
mkdir /tmp/mine
chmod 700 /tmp/mine
mkdir /tmp/mine/.ssh
chmod 700 /tmp/mine/.ssh
cp ~/.ssh/authorized_keys /tmp/mine/.ssh/
cd /tmp/mine
# unmount your encrypted home drive
/sbin/umount.ecryptfs_private
# copy your ssh folder to the place ssh will actually look for
cp -r .ssh ~
# be sure to remove it again from /tmp
rm /tmp/mine/ -rf

これで再度ログインできるようになりますが、ホームフォルダが自動的に暗号化解除されることはありません。暗号化せずにマウントするには、ログインするたびにこれを入力する必要があります。

/sbin/mount.ecryptfs_private

ログインパスワードの入力を再度求められます。

これに関する詳細はここで見つけることができます: https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/362427

10
Jens Timmerman

Arch Linuxサーバーでも同じ問題が発生し、ホームディレクトリがecryptfsで暗号化されていました。 sshキーでログインできるようにするには、最初にサーバーコンソールからログインして、復号化された.ssh/authorized_keysファイルを作成する必要がありました。私はそれを次のように解決しました:私は最初に.sshディレクトリの内容を安全な場所にコピーしました。次に、rootユーザーとして:

home/.ecryptfs/<my username>ディレクトリに、権限700で、自分のユーザー名とグループ(つまり、ルートではない)の下に.sshディレクトリを作成しました。次に、元の.sshディレクトリ(私の場合はauthorized_keysファイルのみ)のコンテンツを金庫からこの場所に、権限600で、自分のユーザー名とグループでコピーしました。/etc/ssh/sshd_configファイルで、Safadoのソリューションを使用して、次のオプションを使用しました:AuthorizedKeysFile /home/.ecryptfs/%u/.ssh/authorized_keys

最後に、ホームディレクトリと自分のユーザー名で、.sshディレクトリとそのコンテンツを削除し、ソフトリンクに置き換えました。

rm -rf .ssh(またはmv .ssh .ssh.bkpを使用)

ln -s /home/.ecryptfs/<my username>/.ssh .

0
BartT