1 つのホーム フォルダーでのパスワードなしの SSH について質問があります。
共通の /home/developers アカウントと複数のユーザー (developerA、developerB ...) を作成しました。すべての開発者に同じホーム フォルダー (/home/developers) が委任されています。
開発者Aとして、彼のマシン上で次の操作を実行しました。
- ssh-keygen -t rsa -f developerA -C[メールアドレス]
- (サーバー上) サーバーの /home/developers/.ssh/authorized_keys ファイルに .pub を追加しました
- ssh 開発者A@myServer -i 開発者A
authorized_keys ファイルは開発者によって所有されているため、問題は権限に関連しているのではないかと考えています (-rw------- 1 開発者 開発者 2033 年 11 月 11 日 22:55 authorized_keys)
この問題の解決策、または各ユーザーのホーム フォルダーを作成せずに複数ユーザーのパスワードなし SSH を実行する方法を知っている人はいますか。
よろしくお願いします
答え1
ユーザーは 1 人だけです。したがって、複数ユーザーの問題ではありません。.ssh ディレクトリのモードが 700 であることを確認してください。
しかし、いずれにしてもやり方が間違っています。開発者ごとに異なるユーザーを作成し、共通のグループに配置する必要があります。開発者が同じファイルで作業する必要がある場合は、共通グループによる書き込みを許可し、「グループ ID の設定」フラグが設定されたディレクトリに配置します。そうすれば、開発者が書き込んだ内容はすべてグループに属することになります。
答え2
彼が尋ねたのだから、彼には理由があるはずです。ここにいくつかのアイデアを挙げます。
- 公開キー文字列が折り返されていないことを確認してください。authorized_keys では 1 行に連続している必要があります。
- authorized_keys の権限は rw-rr (644) である必要があります。
- ~/.ssh の権限を確認してください。rwx-- (700) である必要があります。
- また、/etc/ssh/sshd_config に「PubkeyAuthentication yes」が含まれていることを確認してください。
答え3
私の経験では、ssh はファイルとディレクトリの権限について非常に厳格です。 authorized_keys ファイルは 'rw-r--r--' である必要があり、それを含む .ssh ディレクトリもすべてのユーザーがアクセスできる必要があります (ただし、world が書き込み可能ではありません)。これは、.ssh ディレクトリと、そこに至る完全なディレクトリ パスを意味します。
これを正しく行わないと、キー交換ログインは失敗します。
マイク
答え4
@joebob は正解です! もう少しだけ詳細を述べます (最後の行に注目してください)
からこの郵便受け.ssh
SSH は共有されているホーム ディレクトリ内のフォルダーの使用を拒否することがわかります。私の場合、/var/log/messages
次のように表示されます。
3月10日 09:57:13 sshd[32249]: 認証が拒否されました: ディレクトリ /home/ の所有権またはモードが不正です
参照サイトには、この問題に対する 2 つの解決策があります。
権限を修正する
chmod g-w /home/your_user chmod 700 /home/your_user/.ssh chmod 600 /home/your_user/.ssh/authorized_keys
設定して
StrictModes off
ください/etc/ssh/ssh_config
(推奨しません)
残念ながら、私は現在製品版ボックスを使用しているため、いずれのソリューションもテストできません...3番目の選択肢も探しています可能であれば、チームの設定によりホーム ディレクトリのアクセス許可を変更できないため... (悪いモデルです - わかっています)