GIT PUSH over ssh が機能するには、再起動のたびに ssh 証明書を再インポートする必要があります。

GIT PUSH over ssh が機能するには、再起動のたびに ssh 証明書を再インポートする必要があります。

私は MacBook Air で OSX 10.8 を使用しており、リポジトリを SSH 経由で EC2 インスタンスにプッシュするように Git を設定しています。これですべて正常に動作します。

唯一の問題は、再起動するたびに、ssh-add certname.pemGIT が SSH 経由で ec2 インスタンスに接続できるようにする必要があることです。

これは単に見落とされた構成の問題なのか、あるいはもっと深い理由があるのか​​はわかりません。

答え1

使えませんか

ssh-add -K [keyfile]

情報をキーチェーンに追加しますか?次にそのキーチェーンに認証されている状態でターミナルを起動すると、そこに情報が表示されます。

答え2

パスワードなしのキーを設定してgit/sshにそのキーをSSHとして使用するようにするIdentityFile?
(ただし、ssh-keygenキーを生成するときにパスフレーズを要求されますが、パスフレーズを入力するだけenterで、生成されたキーを使用するのにパスフレーズは不要になります)。

このキーを自動的に再追加したい場合、キーを使用することで得られるセキュリティはすべてバイパスされます。そのため、パスワードなしのキーとエージェントが自動的にインポートするキーの間に実質的な違いはありません。


当然、このキーでサーバーにアクセスする以外の操作は実行できないようにする必要がありますgit(誰かがキーの秘密部分を入手した場合、その人があなたとしてコマンドを実行することは望ましくありません)。

答え3

必要なのは、OSXのキーチェーンにpemを追加するスクリプトを設定することです。以下の行を~/.bash_profile(zshを使用している場合は~/.zshrc)に追加します。

ssh-add -K certname.pem

これをチェックしてくださいhttps://superuser.com/a/409316/41202詳細については

答え4

うーん。これは EC2 の ssh 設計との残念な相互作用です。インスタンスにアクセスするには pem ファイルを使用することが強く推奨されているため、ssh -i <aws.pem>すべての接続例で pem ファイルを使用する必要があるのです...

git エイリアスはどうでしょうか? プッシュする EC2 インスタンスがないのでテストしていませんが、次のようなものです:

git config alias.ec2push "!sh -c 'ssh-add certname.pem && git push $1 $2'"

次に次のようにプッシュします:

git ec2push <repo> <branch>

関連情報