5.3 クライアントから7.4サーバーへのSSH接続の問題

5.3 クライアントから7.4サーバーへのSSH接続の問題

次の設定があります。

  • Centos 6のクライアントopenssh 5.3
  • centos 7のnginxplusストリーミングプロキシ(gitlabサーバーポート22のプロキシカスタムSSHポート)
  • openssh 7.4を実行しているgitlabサーバー

クライアントはSSH経由でサーバーに接続できません。他の場所からSSHサーバーに接続できます。カスタムTCPポートに接続でき、sshクライアントコマンドを実行すると、そのポートにTCP接続が表示されます。しかし、クライアントがデータを提供していないため、データはgitlabサーバーにプロキシされません。

また、クライアントノードIPから接続できるようにクライアントホストとのSSHセッションを開始し、ポートをプロキシ/gitlabサーバーに転送しようとしましたが、最新のクライアントを使用しました。これはうまくいくので、ファイアウォールやホストの拒否などの問題ではないと思います。クライアントノードでSSHホストキーを更新しましたが、これも効果がありませんでした。

接続すると、tcpdumpでSSHプロトコルネゴシエーションが開始されないことがわかります。これがクライアントのバージョンに関連しているか、構成設定が欠落している可能性があると思いますが、何かはわかりません。

[root@clienthost ~]#  ssh -i ~/.ssh/id_rsa [email protected] -p $CUSTOMPORT -vv
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuration data /root/.ssh/config
debug1: Applying options for gitlab.test.fqdn
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to gitlab.test.fqdn [a.b.c.d] port $CUSTOMPORT.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug2: key_type_from_name: unknown key type '-----BEGIN'
debug2: key_type_from_name: unknown key type 'Proc-Type:'
debug2: key_type_from_name: unknown key type 'DEK-Info:'
debug2: key_type_from_name: unknown key type '-----END'
debug1: identity file /root/.ssh/id_rsa type -1
debug1: identity file /root/.ssh/id_rsa-cert type -1
debug2: key_type_from_name: unknown key type '-----BEGIN'
debug2: key_type_from_name: unknown key type 'Proc-Type:'
debug2: key_type_from_name: unknown key type 'DEK-Info:'
debug2: key_type_from_name: unknown key type '-----END'
debug1: identity file /root/.ssh/id_rsa type -1
debug1: identity file /root/.ssh/id_rsa-cert type -1

私が知っている限り、これはほとんど以前のrsa 1プロトコルに関連しており、rsa 2にとって重要ではありません。 id_rsaファイルの権限は、0400 ルート以外のユーザーには適用されません。

SSHクライアント構成:

Host gitlab.test.fqdn
  HostName gitlab.test.fqdn
  User git
  IdentityFile /root/.ssh/id_rsa
  Port $CUSTOMPORT

id_rsa ファイル属性のコメント後の編集

また、id_rsaをASCIIテキストファイルとして報告するファイルコマンドに関する問題を修正しました。これでpem rsa秘密鍵ファイルを報告します。

私が見逃している部分や私が間違っている部分について知っている人はいますか?

答え1

nc -v gitlab.test.fqdn $CUSTOMPORTまたはを実行し、telnet gitlab.test.fqdn $CUSTOMPORTエージェントがSSHと直接互換性のある方法で動作している場合は、SSHサーバーのバージョン文字列を取得する必要があります。

文字列は次のようにする必要があります。

SSH-2.0-<something...>

HTTPプロトコルを期待するようにプロキシが誤って誤って設定されている場合、接続は成功しますが、初期応答はありません。 HTTPではクライアントが最初に話す必要がありますが、SSHプロトコルではサーバーが最初に話す必要があります。

(HTTP プロキシをサポートするクライアントできる次に、HTTPCONNECT要求を使用して、指定された宛先に指定されたポートに接続します。ただし、これにより、クライアントはプロキシ接続の宛先を選択できますが、これは明らかに望ましくありません。 )

答え2

私たちはnginxでssl_prereadを有効にしましたが、これは明らかにサーバー優先プロトコルとバージョン発表をブロックします。この機能をオフにすると、サーバーは最初にプロトコルとバージョンを送信し、すべてが期待どおりに機能します。

telcoMの答えがたくさん役に立ちました。ありがとうございます!しかし、解決策として特定の設定変更を公開したいと思います。

関連情報