私のシステムでは、sshクライアント認証はrootに対して許可されていましたが、sshクライアント認証が非rootユーザーに対してのみ許可されるようにしたいと思いました。 rootとしてsshを無効にするために、PermitRootLogin yes
からPermitRootLogin no
、しかし今は自分のプラットフォームにSSHで接続できません。
Root以外のユーザーに対してのみsshクライアント認証を有効にする方法を誰かに教えてもらえますか?
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
(1つ目はDebianとその派生物、2つ目はArch Linux、Fedora、および一般的なsystemdシステム用です)。
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
2つのタイプのシステムについても同様です(Arch以外のsystemdディストリビューションについてはわかりませんが、おそらく最初の形式はArch以外のすべてのシステムに適用されます)。
これにより、デバッグに必要な情報が生成されます。
使用しているLinux/Unixの種類がわからない。私はUbuntuをよく使用します。
デフォルトでは、通常のユーザーとしてSSH経由でログインできます。ログインできます
ssh -l myuser myhost
または
ssh myuser@myhost
このようにしてみましたか?はいの場合、次の失敗の一般的な理由を考えることができます。
デバッグするには、-vvv
sshでログインしようとしているとき。これにより、SSHが試行していることと発生したことに関する多くのデバッグメッセージが表示されます。