問題タブ [ssh-agent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - capistrano および symfony2 の bin/vendors インストールで、エージェントが転送した ssh キーを使用できない
ssh エージェント転送を使用して、Symfony2 プロジェクトをサーバーにデプロイします。これは問題なく動作し、capistrano を使用して github から git clone などを実行しても問題はありません。
ただし、Symfony2 の場合、bin/vendors install を実行して最新の dep を取得する必要があります。このベンダー スクリプト ( https://github.com/symfony/symfony-standard/blob/2.0/bin/vendors ) は、git pull のような「system()」コマンドを実行する php スクリプトです。
capifony (capistrano と symfony のアドオン) では vendors コマンドが実装されており、try_sudo を使用するように少し変更しました。これは、独自のホスティング プラットフォームのために必要な変更です。これは、github からの公開 https:// URL に最適です。
try_sudo "sh -c 'cd #{latest_release} && #{php_bin} bin/vendors install'"
私たちが直面している問題は、git@github.com 形式を使用している場合 (一部のプライベート リポジトリに必要であり、バンドルを変更して変更をプッシュ バックする場合)、ssh-agent を使用できないため、転送されたキーが見つからないことです。許可拒否エラーが発生します。
- https:// 形式への切り替えは簡単に解決できるように思えますが、プライベート リポジトリではパスワードが要求されます。
- system() コマンドで ssh-agent を起動すると機能しましたが、キーがまだありません。
そのため、これ以上何を探すべきかわかりません。ssh-agent を php ベンダー スクリプトに渡す方法はありますか?
更新:
セキュリティ上の理由から、sudoはすべての環境変数を削除するため、既存のsshエージェントに接続することはできません。
https://serverfault.com/questions/107187/sudo-su-username-while-keeping-ssh-key-forwardingで、エラーと解決策の両方を見つけました。Defaults env_keep+=SSH_AUTH_SOCK を /etc/sudoers に追加し、sudo を実行しているユーザーがアクセスできるようにエージェント ソケットを chmod することで、ssh エージェントを維持できます。
ただし、スレッドを注意深く読んでください。そうするのは安全ではありません。ログアウトするとエージェントが破棄されるため、信頼できないユーザーのいないサーバーと組み合わせたカピストラーノ展開シーケンスでは、許容できると思います。私が間違っていなければ?
cygwin - Cygwin のインストール後に SSH エージェントが起動しなくなった
msysGitをインストールし、ssh-agentを起動するコードを書いて.profile
、すべてがうまくいきました。
Git なしで、ssh と cURL だけでcygwin をインストールしました。
Git bash を開いたときに SSH エージェントが起動しなくなりました。
新しい ssh-agent プロセス インスタンスを開始できますps
。Git bash で実行すると表示されますが、使用しようとするとssh-add
、次のエラーが発生します。
Could not open a connection to your authentication agent.
cygwin では、そのインストール フォルダ (C:\cygwin) に多数のファイルが作成されました.profile
。.bashrc
これが問題かどうかはわかりません。
どうすればこれを修正できますか?
python - ログインせずにssh-agentを使用する
ubuntuマシン(12.04)の専用ユーザーを使用して、ssh-agentを使用してssh経由で多くのマシンに自動的に接続したいと考えています。問題は、スクリプトを使用してこのユーザーを生成したためです
そのユーザーにログインせず、ssh-agent が実行されておらず、パスワードを提供せずに ssh を使用しようとすると (python と paramiko を使用します)、次のように言って失敗します。
いくつかの調査を行った結果、多くの人がこのコマンドラインで ssh-agent を起動することがわかりました
しかし、これはうまくいきません (特に上記のコマンドが python で実行された場合)。
それを機能させる唯一の方法は、そのユーザーにログインし(たとえばsshを介して)、上記のコマンドを入力することです。これにより、自動化されたアプローチがそれほど自動化されなくなります。専用ユーザーにログインしますか?
ssh-agent - 共有ホスト上の ssh セッション全体での ssh-agent
共有ホスト (WebFaction) に ssh しssh-agent
、mercurial リポジトリ (BitBucket) への接続を確立するために使用します。エージェントを次のように呼び出します。
これにより、エージェントの pid が吐き出され、関連する環境変数が設定されます。次に、次のように ssh-add を使用して ID を追加します (パスフレーズを入力した後)。
ssh 接続が最終的にタイムアウトになり、サーバーから切断されます。再度ログインすると、Hg サーバーに接続できなくなったので、次のようにします。
そして、投稿の上部にある 2 つのコマンドを繰り返します (つまり、eval
と callを使用してエージェントを呼び出しますssh-add
)。
このプロセスを回避し、最初に生成されたエージェントへの「参照」を維持するための確立されたイディオムがあると確信しています。最初のコマンドの I/O をファイルにリダイレクトしようとしましたが ( .bashrc
.
ホストに SSH 接続するたびにこのプロセスを実行する必要がないようにするにはどうすればよいですか?
私の *NIX スキルは弱いので、投稿のあらゆる側面に対する建設的な批判を歓迎しssh-agent
ます。
windows - gitbash (キャッシュ パスフレーズ キー): Windows で実行する ssh-agent を取得できません。.bashrc と .profile を変更しました
私はWindowsを使用しており、gitは原点をgithubに設定して作業しています。
もちろん、プル/プッシュしたいときはいつでも、githubのキーのパスフレーズを提供する必要があります。
私が読んだことによると、 ~/.profile または ~/.bashrc を編集してテキストを入力する必要があります
https://help.github.com/articles/working-with-ssh-key-passphrasesを参照してください
私はこれを何度も行ってきましたが、実際には両方のファイルに入力しましたが、新しい GitBash ウィンドウを開いたときに何も実行されていないようです (何かが実行されると仮定し、上記のリンクに従ってパスフレーズを要求します)。
もちろん、すべてのプッシュまたはプルは、毎回パスフレーズを要求します。
ここで何かが明らかに欠けています。誰か助けてもらえますか?
私はWindowsを使用していることを思い出してください:-)、Windows用のgitに同梱されているgitbashを使用しています。
前もって感謝します
ssh - パテページェントプロトコル?
ssh-agent には、特定の秘密鍵で署名するためにデータを送信できるプロトコルがあります。
http://api.libssh.org/rfc/PROTOCOL.agent
Linux では、ssh-agent を使用して、SSH_AUTH_SOCK への Unix ドメイン ソケットを開き、そこにパケットを送信します。ただし、Windows には Unix ドメイン ソケットがありません。
何か案は?
ありがとう!
ssh - ssh-agentが開始されても、SSH-addは永続的なイベントではありません
ssh-addを実行しました。セッション中は正常に動作しますが、終了してsshを使用してサーバーに再接続すると、動作しなくなります。ssh-add-lは次のように述べています。IDはありません。
eval $(ssh-agent)を使用して、.bash_profileでssh-agentを開始します。
アイデンティティを維持するために私ができることはありますか?
//編集 これが私のシナリオです。sshを使用してWebスペースに接続しています。gitpullを使用してgithubからデータをプルしたい。githubに接続を追加しましたが、gitpullは正常に機能します。しかし、それはパスフレーズを要求します。ssh-addを実行し、パスフレーズを追加すると、それが停止しますが、現在のセッションに対してのみです。
eval $(ssh-agent)
サーバー上で自動起動しないため、のようなものを使用してssh-agentを起動する必要があります。
私が抱えている主な問題は、githubからのリクエストによって呼び出されるgit pullを実行するためのスクリプトが必要なため、パスフレーズを指定できないことです。
ssh - ssh-add でファイルからパスフレーズを読み取る方法は?
キーを追加しようとしていて、使用しているキー ファイルからパスワードを読み取りssh-agent
たいと考えています。ssh-add
これはどのように可能ですか?
シェルスクリプトからこのプロセスを自動化するにはどうすればよいですか?
eclipse - Eclipsegitおよびssh-agent
私はgit(egit)でEclipseを使用しています。
ssh-agentを利用して、Eclipseからプッシュできるようにしたいと思います。ssh-agentを使用するようにegitを設定する方法を知っている人はいますか?
背景:キーがクリプトスティック上にあるため、キーをEclipseにアップロードできません。私のssh-agentはopenscの助けを借りてロードすることができます。
ssh - ssh-agentを使用して認証されないopensshキーを持つTortoiseGit
Windows XP (msysGit 1.7.11、TortoiseGit 1.7.14) で git 環境をセットアップし、次の点を達成しようとしています:
- デフォルトの 22 以外のポートでの ssh 接続
- ssh-agent によって処理される ssh 認証
だから私は~/.ssh/configファイルを作成します:
git bash CLI を使用すると、すべてが意図したとおりに機能します。
私は TortoiseGit に苦労しています。
まず、Plink を使用して TortoiseGit をインストールし、Pageant を使用して ssh 秘密鍵をロードしました。自動認証 (Pageant) は機能しましたが、TortoiseGit がgitolite@gitbox/repo.gitとしてフォーマットされた git リポジトリ URL を認識しないため、セットアップは失敗しました。
次に、openssh クライアントを使用して TortoiseGit をインストールすることにしました。これにより、構成ファイルを ssh クライアントで読み取ることができ、git CLI セットアップを模倣することができます。
TortoiseGit の設定で、 msys git に同梱されているssh.exeを ssh クライアントとして選択しました。
を実行するgit pull
と、リモート URL が解決されるようになりましたが、ssh-agent 自動認証が行われることを期待しているときに、パスフレーズ パスワードが求められます。
TortoiseGit を ssh-agent で動作させることは可能ですか?
または、TortoiseGit (Plink) に.ssh/configを認識させますか?
編集#1
@VonC のアドバイスに従って、 $HOME 変数を構成しました。[ TortoiseGit で環境変数を表示
] をクリックすると、次のようになります。
ただし、git pull
パスフレーズを入力する必要があります。