web-dev-qa-db-ja.com

リモートシステムにホームディレクトリがない場合、公開鍵を使用してSSHできますか?

私は現在、ユーザーFOOでsshを実行してから、ユーザーBARでSudoを実行する必要があります。

公開鍵を使用してsshしたいのですが、リモートシステムにはユーザーFOOのホームディレクトリがないため、明らかに.ssh/authorized_keysはありません。公開鍵はどこに置くことができますか?

/ homeディレクトリは空なので、どのユーザーにもホームディレクトリが作成されないようで、そのシステムにはrootがありません。

ありがとう。

4
ccc

ユーザー名がtestsshであると仮定:

  • /etc/ssh/authorized_keys_testsshを作成し、そこにキーを配置します
  • 以下を/etc/ssh/sshd_configに追加します。
Match User testssh
    AuthorizedKeysFile  /etc/ssh/authorized_keys_%u

sshdを再起動します。ユーザーは自分の秘密鍵でsshを実行できます。

2
tonioc

短い答え

おそらくできません-システム管理者に相談してください。


より長い答え

まず、/homeディレクトリが空であっても(それが存在しない場合でも)、必ずしもユーザーにホームディレクトリがないというわけではありません。 HOME環境変数の値を確認してみてください。

$ echo $HOME
/path/to/nonstandard/homedirectory

または、getentコマンドを使用します。

$ getent passwd username
username:*:1001:1001:User Name:/path/to/nonstandard/homedirectory:/bin/bash

ユーザーに実際にはホームディレクトリがないことが判明した場合でも、サーバー管理者がauthorized_keysファイルに標準以外の場所を設定している場合は、公開鍵を使用できる可能性があります。

OpenSSH を使用しているとすると、authorized_keysファイルの場所は、sshd_config構成ファイルのAuthorizedKeysFileキーワードで指定できます。詳細については、ドキュメントを参照してください。

デフォルト値は~/.ssh/authorized_keysです。デフォルトが上書きされているかどうかを確認するには、/etc/ssh/sshd_configの設定を確認する必要があります。 rootアクセス権がないため、変更を加える場合は、おそらくシステム管理者に助けを求める必要があります。

ホームディレクトリがないこと、システム管理者がauthorized_keysファイルの別の場所を構成していないこと、およびマシンの管理者権限がないことが判明した場合は、おそらく鍵ベースの認証を使用できない-システム管理者に相談してください。

1
igal