一般ユーザー、システムユーザー、および root ユーザーを許可する sshd から authenticate_keys パスを提供する方法は?

一般ユーザー、システムユーザー、および root ユーザーを許可する sshd から authenticate_keys パスを提供する方法は?

AuthorizedKeysFile次のような場合を含めるように明示的に設定できますか?

  1. 標準ユーザーの場合/home/%u/.ssh/authorized_keys
  2. システムユーザーの下/var/lib/%u/.ssh/authorized_keys
  3. rootユーザー/root/.ssh/authorized_keys

私の質問は、次に指定されたユーザーディレクトリを含む変数がありますか?ネームサービススイッチ

答え1

.ssh/ユーザーが実際のユーザーであるか、システムユーザーであるか、ルートであるかにかかわらず、ユーザーのホームディレクトリをデフォルトで使用できるようにすることを示しました。

あなたの質問から次のように推論しました。

私は変更してこの/etc/ssh/sshd_config問題を解決しようとしました。

AuthorizedKeysFile ~/.ssh/authorized_keys 

sshd確認が進行中だったため失敗しました/root/.ssh/authorized_keys

早く見てみると手動sshd_config次の内容が表示されます。

認証キーファイル

ユーザー認証に使用できる公開鍵を含むファイルを指定します。 AuthorizedKeysFileには、接続設定中に置き換えられる%T形式のトークンを含めることができます。次のトークンが定義されます。 %% はリテラル「%」に置き換えられます。%hは認証されているユーザーのホームディレクトリに置き換えられます。、%uはユーザーのユーザー名に置き換えられます。拡張されると、AuthorizedKeysFile は絶対パスまたはユーザーのホームディレクトリへの相対パスとして扱われます。デフォルトは「.ssh/authorized_keys」です。


私のデフォルト設定では、次の行をコメントアウトしました。

# AuthorizedKeysFile %h/.ssh/authorized_keys

これは(少なくともOpenSSHのUbuntuとDebianディストリビューションの場合)実際に基本的な設定を要求することを意味します!これは反対投票をする良い理由です。

答え2

@Tomaszによると、次のようにユーザーを一致させることができます。

# no match rule
AuthorizedKeysFile /home/%u/.ssh/authorized_keys

match User foo
    AuthorizedKeysFile /special/authorized_keys.%u

match Group git
    /var/lib/%u/.ssh/authorized_keys

より一般的なユーザーを最初に使用します。

人に会っssh_configたり、人に会ったりsshd_config

(ところでchrootを使ってsles12で動作させることはできませんでした)

関連情報