SSH公開鍵を介して自分のサーバーにログインできません。問題は、私の家の暗号化に関連しているようです。 Ubuntuインストール設定で「マイホームフォルダの暗号化」オプションを選択しました。権限は/home/MY-USER
700です。
別のワークステーションを試してみましたが、すべてがうまくいきます。誰かが暗号化を削除せずにこの問題を解決するのに役立つことができれば幸いです。
答え1
ホームディレクトリが暗号化されている場合、sshデーモンはホームディレクトリに入り、秘密鍵が公開鍵と一致することを確認できません。最終的に.sshフォルダは暗号化されます。
この問題に対する解決策は、認証キーを含む.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
答え2
ssh_configファイル内の秘密鍵の場所を変更できます。に新しいフォルダを作成し、その中に秘密鍵ファイルを配置し、オプションを変更して新しい場所を確認するなどの操作を実行/etc/ssh/keys/
できid_rsa
ます。このプロセスでは、秘密鍵を保護するために特定の措置を講じる必要があります。IdentityFile
ssh_config
これは、あなたがコンピュータの唯一のユーザーであると仮定します。そうでない場合は、次/etc/ssh/keys/john/
のフォルダを作成してからオプション/etc/ssh/keys/dogbert/
をIdentityFile
配置できます。/etc/ssh/keys/%u/id_rsa
答え3
ecryptfsを使用してホームディレクトリが暗号化されたArch Linuxサーバーでも同じ問題が発生しました。 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 .