Windows 7のopensshでは、すべてのcmdインスタンスに対してssh-addを1回実行します。

Windows 7のopensshでは、すべてのcmdインスタンスに対してssh-addを1回実行します。

最新の cygwin ディストリビューションの一部として openSSH をインストールしました。私の目標は、ネイティブ ウィンドウ コンソール (cmd) から ssh-agent を使用して、さまざまな Linux マシンにパスワードなしでログインすることです。

キーを生成し、リモート ホストの適切なディレクトリにアップロードしたところ、すべて正常に動作しました。

唯一の問題は、新しい cmd を開くたびに 'ssh-add' を実行し、パスフレーズを入力してからリモート ホストにパスワードなしでログインする必要があることです。この問題を解決する方法はありますか? 理想的な解決策は、ssh-add を 1 回だけ実行することです。

参考までに: ssh-agent への引数として cmd を開いています: 'ssh-agent cmd'

答え1

私は実際に「ssh-agent-helper」というツールを作成しました。これはssh-agent、ssh をグローバルに呼び出して使用できるようにするもので、設定なしで、CMD、Bash、PowerShell などの任意のターミナルからssh-addsshまたはを使用できます。git

こちらからご覧いただけます:https://github.com/raeesbhatti/ssh-agent-helper

答え2

ネイティブ コマンド ウィンドウから ssh を実行することはできません。Cygwin バイナリを実行するには、Cygwin bash "ウィンドウ" を実行する必要があります。

そうは言っても、Cygwin bash の「ウィンドウ」では、ssh-agent の出力をファイルに保存し、そのファイルを、キャッシュされた資格情報を使用するログイン スクリプトのいずれかに取り込む必要があります。最初の「ウィンドウ」で、次を実行します。

$ ssh-agent >your_save_file     # Starts ssh-agent, saves shell variables
$ . your_save_file              # Loads saved shell variables into current shell
$ ssh-add                       # Adds keys into ssh-agent

他のそれぞれでは、次を実行します。

$ . your_save_file

コマンド実行後に開始されたすべての「ウィンドウ」と子プロセスは、. your_save_filessh-agent にキャッシュされた認証情報を使用できます。ssh-agent が停止または強制終了されたとき、またはシステムを再起動した後は、最初のコマンド セットを再度実行する必要があります。キャッシュされた認証情報が特定のシェルで使用可能かどうか不明な場合は、次のコマンドを実行します。

$ ssh-add -l            # Show list of loaded keys in ssh-agent

関連情報