私のシステムでは、rootユーザーにSSHクライアント認証を許可しますが、root以外のユーザーにのみSSHクライアント認証を許可したいと思います。 sshをrootとして無効にするために変更しましたが、PermitRootLogin yes
今PermitRootLogin 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が試していることと進行中の操作に関する多くのデバッグメッセージが表示されます。