root以外のユーザーによるSSHクライアント認証

root以外のユーザーによるSSHクライアント認証

私のシステムでは、rootユーザーにSSHクライアント認証を許可しますが、root以外のユーザーにのみSSHクライアント認証を許可したいと思います。 sshをrootとして無効にするために変更しましたが、PermitRootLogin yesPermitRootLogin no私のプラットフォームにsshを接続することはできません。

root以外のユーザーに対してのみSSHクライアント認証を有効にする方法を教えることができる人はいますか?

答え1

SSH サーバーの構成は、/etc/ssh/sshd_config ファイルで行われます。このファイルを開き、次のことを確認する必要があります。

1)以下に指示がありますか?

AllowUsers ...
AllowGroups ...
DenyUsers ...
DenyGroups ...

その場合は、自分のように接続できるように変更する必要があります。

2)説明はありますか?

PasswordAuthentication no

存在する場合、SSH認証は暗号化キーでのみ実行できることを意味します。明らかにそうではないので、実際にシステムにSSHで接続するのを防ぎます。

これを次に変更します。

PasswordAuthentication yes

これにより、これが問題に対する完全な解決策であるかどうかをテストできます。 SSHが自分にも適していることを確認したら、暗号化キーを直接生成してPasswordAuthenticationをオフにします。パスワードの代わりにキーを使用して認証する方法に関する便利なガイドがたくさんあります。します。あなたのセキュリティが大幅に向上します。

このテストを完了するには、SSHサーバーを再起動する必要があります。そうしないと、/etc/ssh/sshd_configに導入された変更は適用されません。これを行う方法はシステムによって異なります。

 sudo service ssh restart

または sudo systemctl daemon-reload sudo systemctl restart sshd

(最初はDebianとその派生製品に適用され、2番目はArch Linux、Fedora、および一般的なシステムシステムに適用されます。)

3.)説明がありますか?

PermitRootLogin no

rootでログインしようとしたら?その場合は、上記の「いいえ」を「はい」に変更してください。

それでも問題が解決しない場合は、クライアントコンピュータで以下を実行して取得できるデバッグの詳細を提供する必要があります。

ssh me@my_pc -vv

これは大量のデータを出力し、これに役立ちます。サーバーには、同等の(明白なセキュリティ上の理由でより多くの情報を提供する)オプションがあります。まずサービスを停止する必要があります。

 sudo service ssh stop
 sudo systemctl stop sshd

その後、再起動してください

 sudo /usr/sbin/sshd -Dd
 sudo /usr/bin/sshd -Dd

どちらのタイプのシステムにも適用されます(Arch以外のシステムディストリビューションについてはわかりません。おそらく最初の形式はArchを除くすべてのシステムで機能します)。

これにより、デバッグに必要な情報が生成されます。

答え2

どのLinux/Unixを使用しているかわからない。私はUbuntuをたくさん使い、次のように進行します。

デフォルトでは、一般ユーザーはSSH経由でログインできます。以下からログインできます。

ssh -l myuser myhost

または経由

ssh myuser@myhost

これを試してみましたか?その場合は、次の一般的な失敗の理由を考えてみましょう。

  • Linux/Unix によってログインを許可するには、ユーザーを特定のグループ (ssh など) に追加する必要があります。
  • また、パスワードを使用したログインが許可されているか、公開鍵のみが許可されていることを確認する必要があります(この場合は、ログイン時に鍵を生成または指定する必要があるかもしれません)。
  • 他のIPを使用している間は、特定のIPへのログインを制限できます。

デバッグするには、-vvvログインしようとしたときにsshを試してください。これにより、SSHが試していることと進行中の操作に関する多くのデバッグメッセージが表示されます。

関連情報