19

OS X 10.7.4 上の openssh の既存のバージョンは SSH-2.0-OpenSSH_5.6 であり、残念ながら PCI 準拠ではありません。そのため、アップグレードする必要があり、Homebrew でアップグレードしようとしています。

これまでのところ、私がやったことは次のとおりです。

brew tap homebrew/dupes
brew install openssh

問題ありません。すべてうまくいきました。試してみると、次のwhich sshようになります。

/usr/local/bin/ssh

これは問題ないようですが、次のようにもwhich sshdなります:

/usr/local/sbin/sshd

そしてssh -v正式に報告します:

OpenSSH_5.9p1, OpenSSL 0.9.8r 8 Feb 2011

ここまでは順調ですね。しかし、ここで私は私の要素から外れています。ポート 22 はまだ OS がインストールされているバージョンを使用しています。つまり、次のようにtelnet hostname 22報告されます。

SSH-2.0-OpenSSH_5.6

/System/Library/LaunchDaemons/ssh.plist をいじってみましたが、うまくいきませんでした。

したがって、私の質問は次のとおりです(おそらく重要度の逆順です):

  1. openssh の Homebrew インストールをポート 22 でリッスンするようにするにはどうすればよいですか?
  2. その場合、OS X や他のソフトウェアと競合することはありますか?
  3. そもそも私がこれについて行っている方法は合理的なものですか?
  4. 私は自分がどうあるべきかを考えていませんか?
  5. これは最初からひどい考えですか?

PCI コンプライアンス スキャンに合格しないことに不満を感じており、これを把握する必要があります。率直に言って、サーバー上のすべての e コマース Web サイトを strip.com に変更することを検討していますが、これを把握したいと考えています。 . また、Mountain Lion で openssh がアップグレードされるかどうか知っている人はいますか?

編集: /System/Library/LaunchDaemons/ssh.plist で試したことは次のとおりです。

私は1行だけ編集し、次のように変更しました:

<string>/usr/sbin/sshd</string>

<string>/usr/local/sbin/sshd</string>

そして、sudo kill -HUP 1以下の @the-paul の提案に従って、Mac を再起動してみました。

リモートから Telnet 接続しても表示されるSSH-2.0-OpenSSH_5.6

私の ssh.plist ファイル全体は次のようになりました: http://pastie.org/private/qnhofuxomawjdypp9wgaq

4

2 に答える 2

16
  1. このようなデーモンは、OS X では によって制御されます。これは、や などlaunchdのディレクトリ内のファイルによって構成されます。少なくとも Lion と Snow Leopard では、デフォルトの ssh デーモンは によって定義されています。/System/Library/LaunchDaemons//Library/LaunchDaemons/System/Library/LaunchDaemons/ssh.plist

    これをテキスト エディターで root として開き、" Program" キーの値を必要な/usr/libexec/sshd-keygen-wrapperパスに変更します。あなたの場合、それはおそらく/usr/local/sbin/sshdです。次に、最初の文字列である変更する必要があります。これは、 への引数として意図されているためです。次に、リロードするには、ProgramArguments/usr/sbin/sshdlaunchproxy

    sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist
    sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
    
  2. それが、通常の、または行儀の良い OS X ソフトウェアとどのように衝突を引き起こすのか、私にはわかりません。

  3. はい、それは私には非常に合理的なことのように思えます。セキュリティは重要です。

  4. これは、あまり答えられる質問ではありません。しかし、ほぼ確実に、はい、他のみんなと同じです:^)

  5. いいえ。本当に心配しなければならない唯一のことは、sshd を OS と同じかそれ以上のセキュリティで最新の状態に保つことです。この質問で提起されたような懸念を認識している場合は、問題にはならないと思います。

編集:編集に関する私の提案を修正しましssh.plistた(今回はテストしました)。

于 2012-05-20T19:37:04.213 に答える
1

これが私がしたことです。上記の議論に基づいています。10.11.6 (El Capitan) で正常にテストされました

サーバ

  1. /System/Library/LaunchDaemons/ssh.plist対応するキーが反映されるように編集します…</p>

    <key>ProgramArguments</key>
        <array>
        <string>/usr/local/sbin/sshd</string>
        <string>-i</string>
    </array>
    
  2. シェル スクリプトを編集/usr/libexec/sshd-keygen-wrapperして、最後のコマンドが次の内容を反映するようにします。

    exec /usr/local/sbin/sshd $@
    
  3. /etc/ssh/ディレクトリの内容を複製します。

    $ sudo cp /etc/ssh/ssh* /usr/local/etc/ssh/
    
  4. ファイルの所有権とパーミッションが確実であることを確認してください。

    $ sudo chmod 755 /usr/local/etc/ssh/
    $ sudo chmod 600 /usr/local/etc/ssh/*_key
    $ sudo chmod 644 /usr/local/etc/ssh/ssh{{,d}_config,*.pub}
    $ sudo chown -R root:wheel /usr/local/etc/ssh/
    
  5. SSH デーモンをリロードします。

    $ sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist
    $ sudo launchctl   load -w /System/Library/LaunchDaemons/ssh.plist
    

    注:たとえば、最後のエントリは、システム設定パネルで共有systemsetup -setremotelogin onサービスをアクティブ化することと同等です。

  6. クライアントからの OpenSSH アップグレードを確認します。

    $ ssh-audit <Server IP>
    # general
    (gen) banner: SSH-2.0-OpenSSH_7.8
    (gen) software: OpenSSH 7.8
    (gen) compatibility: OpenSSH 6.5+, Dropbear SSH 2013.62+
    (gen) compression: enabled (zlib@openssh.com)
    

クライアント

  1. OpenSSH をインストールします。

    $ brew install openssh
    
  2. /etc/ssh/ディレクトリの内容を複製します。

  3. 確実なファイルの所有権と権限を確認してください。

于 2018-09-09T16:58:09.407 に答える