1

秘密鍵のパスフレーズに関して、Capistrano と Rocketeer の違いはどこにあるのでしょうか?

Capistrano と Rocketeer の両方の展開戦略が適切に設定され、機能しています。Capistrano ではssh-agent にパスフレーズを提供させますが、Rocketeer は提供していないようです。問題は、パスフレーズが必要な方法ではなく、なぜ必要なのかです。

バックグラウンド:

Capistrano の代わりに、Laravel アプリケーションのデプロイにRocketeerを使用したいと考えています。SSH接続をLaravelに委任しているかのようです。

構成でリモート サーバーの名前のみを設定してチェックを実行した後、資格情報の入力を求められた後、Rocketeer は必要なパスフレーズと目的の秘密鍵へのパスをバージョン管理されていないファイルに保存します。

SSH 接続を確立するための資格情報をディスクに保存したくありません。特に、秘密鍵へのパスフレーズは必要ありません。

では、なぜサーバーの名前以外のものが必要なのでしょうか?

Laravel のリモート構成にこれらのフィールドが用意されていることがわかります。どのコンポーネントが最終的に責任を負うのか、なぜ SSH 接続をシステム自体に完全に任せないのかを見つけることができませんでした。

SSH 接続を確立するために多くの情報が必要なのは、RocketeerLaravelSymfonyphpseclib、またはその下にあるphp自体ですか?

4

2 に答える 2

3

SSH接続を確立するために多くの情報を必要とするのは、Laravelのphpseclibのssh-agentの実装が欠けているためです。

そのため、Rocketeer は、Capistrano のように、ユーザー名/パスワードおよび秘密鍵/パスフレーズ認証の横にある ssh-agent に依存することを許可していません。

明示的なキーの代わりにssh-agent を使用するための phpseclib の文書化されていない実装を含めるために、提案が述べられ、マージされました。

Rocketeer は、Laravel での phpseclib の前述の実装に依存しているため、これから利益を得るでしょう。

(正しい方向を示してくれた @hannesvdvreken、@ThomasPayer、@passioncoder に感謝します)

于 2014-04-23T14:18:22.540 に答える
2

知りたいことがあります。

デフォルトを使用することも、で公開されてapp/config/remote.phpいる Rocketeer を使用することもできます。config.phpapp/packages/anahkiasen/rocketeer

私はLaravelファイルを使用する傾向があります。そのファイルのコピーを、app/config/developmentgit with によって無視されるフォルダーに作成しました.gitignore。そのファイルには、秘密鍵のパスキーのみを書き留めます。の配列とマージされapp/config/remote.phpます。

これが私のapp/config/development/remote.phpファイルです:

return array(
    'connections' => array(
        'staging' => array(
            'keyphrase' => 'your-secret-here',
        ),
        'production' => array(
            'keyphrase' => 'your-secret-here',
        ),
    ),
);

お役に立てれば。

于 2014-04-18T23:35:01.677 に答える