パスワードなしの SSH (共有ホーム フォルダー)

パスワードなしの SSH (共有ホーム フォルダー)

1 つのホーム フォルダーでのパスワードなしの SSH について質問があります。

共通の /home/developers アカウントと複数のユーザー (developerA、developerB ...) を作成しました。すべての開発者に同じホーム フォルダー (/home/developers) が委任されています。

開発者Aとして、彼のマシン上で次の操作を実行しました。

  1. ssh-keygen -t rsa -f developerA -C[メールアドレス]
  2. (サーバー上) サーバーの /home/developers/.ssh/authorized_keys ファイルに .pub を追加しました
  3. ssh 開発者A@myServer -i 開発者A

authorized_keys ファイルは開発者によって所有されているため、問題は権限に関連しているのではないかと考えています (-rw------- 1 開発者 開発者 2033 年 11 月 11 日 22:55 authorized_keys)

この問題の解決策、または各ユーザーのホーム フォルダーを作成せずに複数ユーザーのパスワードなし SSH を実行する方法を知っている人はいますか。

よろしくお願いします

答え1

ユーザーは 1 人だけです。したがって、複数ユーザーの問題ではありません。.ssh ディレクトリのモードが 700 であることを確認してください。

しかし、いずれにしてもやり方が間違っています。開発者ごとに異なるユーザーを作成し、共通のグループに配置する必要があります。開発者が同じファイルで作業する必要がある場合は、共通グループによる書き込みを許可し、「グループ ID の設定」フラグが設定されたディレクトリに配置します。そうすれば、開発者が書き込んだ内容はすべてグループに属することになります。

答え2

彼が尋ねたのだから、彼には理由があるはずです。ここにいくつかのアイデアを挙げます。

  1. 公開キー文字列が折り返されていないことを確認してください。authorized_keys では 1 行に連続している必要があります。
  2. authorized_keys の権限は rw-rr (644) である必要があります。
  3. ~/.ssh の権限を確認してください。rwx-- (700) である必要があります。
  4. また、/etc/ssh/sshd_config に「PubkeyAuthentication yes」が含まれていることを確認してください。

答え3

私の経験では、ssh はファイルとディレクトリの権限について非常に厳格です。 authorized_keys ファイルは 'rw-r--r--' である必要があり、それを含む .ssh ディレクトリもすべてのユーザーがアクセスできる必要があります (ただし、world が書き込み可能ではありません)。これは、.ssh ディレクトリと、そこに至る完全なディレクトリ パスを意味します。

これを正しく行わないと、キー交換ログインは失敗します。

マイク

答え4

@joebob は正解です! もう少しだけ詳細を述べます (最後の行に注目してください)

からこの郵便受け.sshSSH は共有されているホーム ディレクトリ内のフォルダーの使用を拒否することがわかります。私の場合、/var/log/messages次のように表示されます。

3月10日 09:57:13 sshd[32249]: 認証が拒否されました: ディレクトリ /home/ の所有権またはモードが不正です

参照サイトには、この問題に対する 2 つの解決策があります。

  1. 権限を修正する

    chmod g-w /home/your_user
    chmod 700 /home/your_user/.ssh
    chmod 600 /home/your_user/.ssh/authorized_keys
    
  2. 設定してStrictModes offください/etc/ssh/ssh_config(推奨しません)

残念ながら、私は現在製品版ボックスを使用しているため、いずれのソリューションもテストできません...3番目の選択肢も探しています可能であれば、チームの設定によりホーム ディレクトリのアクセス許可を変更できないため... (悪いモデルです - わかっています)

関連情報