SVN + SSH、毎回ssh-addを実行する必要はありませんか?(マックOS)


105

私は答えがそこにあることを知っていますが、私はかなりUnix-dumbであり、それが私に直面した場合の解決策をおそらく認識しません。

MacでSSHトンネリングを介してSVNサーバーに接続しています。私はssh-add privateKey.txt毎回SVNサーバーに接続する必要があります(CornerstoneとXcodeの両方がSVNに接続しています)。

キーをどこかに「保存」する方法はあるので、毎回これを行う必要はありませんか?キーチェーンに追加しますか?いくつかの設定ファイル?スクリプトを起動しますか?

回答:


172

まず、秘密鍵ファイルをに移動します~/.ssh。これは厳密には必要ありませんが、そのようなものの標準的な場所です。

次にを実行しssh-add -K ~/.ssh/privateKey.txtます。必要に応じてパスフレーズの入力を求められたら、キーチェーンに追加します。

その後は、他に何もする必要はありません。もう少し長い説明がここにあります


17
これはMacのものであり、Unixの普遍的なものではないことを明確に指摘する価値があると思います。Ubuntuでは、引数をssh-addとることはできません-K
マークアメリー2014年

2
リンク先の記事はLeopard向けですが、これはまだOS X Mavericksで機能します。
Josh Brown

1
多分誰かが他の環境のための同等のコマンドを持っていますか?mysysgitのssh-addも-K引数を受け入れません
Blake

5
何らかの理由で
Mat Teague

7
macOS Sierraを使用していますか?動作が変更され、ログイン時に鍵をssh-agentに明示的に追加する必要があります:github.com/jirsbek/SSH-keys-in-macOS-Sierra-keychain
Nicholas Riley

49

キーチェーンにパスフレーズを保存する

デフォルトのキーのパスフレーズをキーチェーンに保存するには、ターミナルを開いて実行します。

ssh-add -K

そして、別のキー実行のパスフレーズを保存するには:

ssh-add -K /path/to/private/key/file

パスフレーズの入力を求められたら、それを入力してください。

ssh-addを実行したり、パスフレーズを再度入力したりする必要はありません。

このサイトからの回答:http : //www-uxsup.csx.cam.ac.uk/~aia21/osx/leopard-ssh.html


20

多くの調査の後、私はこの問題に対する答えを完全に見つけたと思います。まず、確認してくださいssh-add -K ~/.ssh/your_key_here。これにより、キーチェーンにキーが追加されます。場所によっては、これで十分だと読んだこともありますが、確信が持てませんでした。これもMac固有なので、別のUNIXフレーバーでこれを行う必要がある場合、必ずしもこのオプションはありません。

適切に測定するために、私は~/.ssh/configファイルを編集して(作成する必要がある場合があります)、持っているすべてのキーをポイントします。鉱山には次のものがあります。

IdentityFile ~/.ssh/identity
IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_dsa 
IdentityFile ~/.ssh/my_other_identity_here
IdentityFile ~/.ssh/yet_another_identity_here

ssh_config のmanページによると、これらは順番に試されます。私がリストした最初の3つのデフォルトのものがそこにある必要があるかどうかはわかりませんが、とにかくそれらを含めました。


-Kmac os xにはフラグがありませんssh-add
dr.dimitru

2
OS Xに-Kフラグがありssh-addます。これに加えて、これが選択された答えになるはずです。
カイザー

1
/usr/bin/ssh-add提供され/usr/local/bin/ssh-addている自作を使用していることを確認してください-Kオプションを提供していません。
Remco Wendt 2016

2
一度ある~/.ssh/configssh-add、マシンを再起動した後に毎回コマンドを実行する必要はありません。
hailong

7

macOS 10.12.2以降、このUseKeychainオプションを使用できます。 もっとここで読むかを調べますman ssh_config

     UseKeychain
         On macOS, specifies whether the system should search for passphrases in the user's keychain
         when attempting to use a particular key. When the passphrase is provided by the user, this
         option also specifies whether the passphrase should be stored into the keychain once it has
         been verified to be correct.  The argument must be ``yes'' or ``no''.  The default is ``no''.

したがって、次のようにしてください。

echo "UseKeychain yes" >> ~/.ssh/config


3
これは上がる必要があります。とても重要です!
quarezz 2017年

2

Macの経験はあまりないので、このバージョンで問題ないかどうかはわかりませんが、http: //www.phil.uu.nl/~xges/ssh/を参照してください。

この特定のアプリが機能しない場合は、とにかくそれを探しています- ssh agent。UNIX風のボックスでは、全体的な効果を得るために、ウィンドウマネージャー全体を起動する必要がありますが、osxではそれができない場合があります。

その他の情報:http : //www-uxsup.csx.cam.ac.uk/~aia21/osx/leopard-ssh.html


1

sshkeychainは1つの可能性です。以下を使用してmacportsで正常にインストールします:

sudo port install sshkeychain

キーチェーンを使用してパスワードを保存し、ログインセッションの起動時に起動することができます(最初の起動時に、ドックのアイコンで通常の右クリック+「起動時に起動」を使用)。

Appleのsvnはキーチェーンを使用してパスワードを保存しますが、必ずしもmacportsで構築するsvnバイナリではないことに注意してください。


0

次のコマンドを実行して、キーチェーンにキーを追加します。

ssh-add -K ~/.ssh/id_rsa

そして、ssh config(~/.ssh/config)ファイルを編集して、キーチェーンからssh-agent(AddKeysToAgent yesオプション)にキーを自動的にロードし、キーチェーン(オプション)にパスフレーズを保存しUseKeychain yesます。

Host *
 AddKeysToAgent yes
 UseKeychain yes
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.