外部ネットワークへのSSHアクセステスト

外部ネットワークへのSSHアクセステスト

企業環境では、ユーザーがSSH経由でアクセスできるアプリケーションを実行しています。このアプリケーションは、企業ネットワーク内のすべてのユーザー(サーバーサーバーなど)がSSH経由でアクセスできます。

ただし、突然、会社ネットワークの外部にある他のネットワーク(必要なファイアウォールルールがあります)のユーザーがSSHを介してこのアプリケーションにアクセスできなくなりました。外部ネットワーク上のコンピュータからサーバーのポート22へのTelnet接続に成功しました。ただし、会社のネットワーク上のサーバーにSSH接続を確立しようとすると、「サーバーが接続を閉じました」というメッセージが表示されます。

この問題で2週間閉じ込められていました。しかし、解決策が見つかりませんでした。ポート22にTelnetで接続できるということは、クライアントとサーバーが何の制限もなくSSHを介して正常に通信できることを意味しますか。 Telnetに加えて、クライアントとサーバー間のSSH接続が機能しているかどうかをテストする方法はありますか?

ベストアンサー1

まず、クライアントを接続しますssh -vvv(これを行うと、sshが実行する操作に関するいくつかのデバッグ情報が出力されます)。これは問題を診断するのに役立つ可能性があり、問題が最もよくわかる部分です。

次に、DNSが正しいホストとして解決されるSSHサーバーに接続するためにホスト名を使用していることを確認します。

sshdを有効にすることができますTCPラッパー。に項目を追加する必要があるかもしれません/etc/hosts.allow

サーバーが使用する認証メカニズムによっては、ユーザーが正しいメカニズムを使用しない限り、許可されません。 (たとえば、許可に設定し、 PubkeyAuthenticationそのユーザーの公開鍵を設定しないと拒否されます。)

これを設定PubkeyAuthenticationし、クライアントはSSH v1を使用して接続できます(RSAAuthenticationそれはすべてです)。

3番目のsshd自体には、接続固有の詳細に対する接続を拒否できる複数の構成設定(man 5 sshd_config)があります。

 AllowUsers, DenyUsers, DenyGroups, AllowGroups, AuthorizedPrincipalsFile

おすすめ記事