クライアントからサーバーにパスワードのないSSHを設定しています。
user1
とという2人のユーザーがいますuser2
。クライアントとサーバーの両方にuser1
ホームフォルダがあります。/home/user1
これは、コマンドを使用してアカウントを作成するときのデフォルトフォルダですuseradd user1
。
クライアントとサーバーの両方にuser2
/home2/user2にホームフォルダがあります。これはコマンドを使用してユーザーを作成することによって行われます useradd -m -d /home2/user2 user2
。その理由は、/home2
より大きな16TBディスクにインストールし、ユーザー2のホームフォルダにより多くの記憶領域を提供したかったからです。
すべての提案に基づいて設定しました。/home2
、、/home2/user2
および/home2/user2/.ssh
正しい700権限を設定しました。
結局のところ、パスワードなしのSSHはuser1
クライアントからサーバーとして機能しますが、クライアントuser2
からサーバーに要求してssh-keygen
使用ssh-copy-id
した後でもパスワードを要求することがわかりました。user2
これは私を混乱させる。これは、ホームフォルダが別の場所(たとえば)にuser2
配置されなければならず、配置できないことを意味しますか?残念ながら、私のフォルダはわずか100 GBのため、より多くのスペースが必要です。/home/user2
/home2/user2
/home
user2
追加情報 要求に応答して/var/log/messages
クライアントで自動ログインが実行された後、サーバーの ssh ログ () を調べました。ログには次のように表示されます。
Jan 20 09:42:55 SERVER dbus-daemon[2502]: [system] Activating service name='org.fedoraproject.SetroubleshootPrivileged' requested by ':1.39048' (uid=977 pid=2794759 comm="/usr/libexec/platform-python -Es /usr/sbin/setroub" label="system_u:system_r:setroubleshootd_t:s0") (using servicehelper)
Jan 20 09:42:55 SERVER dbus-daemon[2502]: [system] Successfully activated service 'org.fedoraproject.SetroubleshootPrivileged'
Jan 20 09:42:58 SERVER setroubleshoot[2794759]: SELinux is preventing /usr/sbin/sshd from read access on the file authorized_keys. For complete SELinux messages run: sealert -l 6b9fec5b-5b03-460b-8199-393d5863256b
Jan 20 09:42:58 SERVER setroubleshoot[2794759]: SELinux is preventing /usr/sbin/sshd from read access on the file authorized_keys.#012#012***** Plugin catchall_labels (83.8 confidence) suggests *******************#012#012If you want to allow sshd to have read access on the authorized_keys file#012Then you need to change the label on authorized_keys#012Do#012# semanage fcontext -a -t FILE_TYPE 'authorized_keys'#012where ...`
この問題を解決するのに役立ちます。
答え1
サーバーはどのLinuxディストリビューションを使用し、SELinuxを使用しますか(確認sestatus
)?
その場合は、次の作業も実行する必要があります。
semanage fcontext -a -t home_root_t '/home2'
semanage fcontext -a -t user_home_dir_t '/home2/[^/]+'
semanage fcontext -a -t user_home_t '/home2/[^/]+/.+'
restorecon -rv /home2
/home2
実際のユーザーのホームディレクトリとその下のユーザーファイルに適切なSELinuxラベルを割り当てます/home2/<username>
。
(例タグはRHEL9用です。以前のバージョンのSELinuxではタグ構造が多少異なる場合があります。わからない場合は、ls -ldZ /home; ls -lZ /home
既存のタグを確認して/home
一致するようにタグを調整してください/home2
。)