SVN + SSH, не нужно делать ssh-add каждый раз? (Mac OS) - PullRequest
102 голосов
/ 15 декабря 2009

Я знаю, что ответ там, но я довольно тупой Unix и, вероятно, не узнаю решение, если оно ударит меня по лицу.

Я на Mac, подключаюсь к серверу SVN через SSH-туннелирование. Мне нужно ssh-add privateKey.txt каждый раз, когда я хочу подключиться к серверу SVN (и Cornerstone, и Xcode подключаются к SVN).

Есть ли способ "сохранить" ключ где-нибудь, чтобы мне не приходилось делать это каждый раз? Добавить его в мой брелок? Какой-нибудь конфигурационный файл? Запустить скрипт?

Ответы [ 7 ]

172 голосов
/ 16 декабря 2009

Сначала переместите файл с закрытым ключом в ~/.ssh. Это не является строго необходимым, но это стандартное место для таких вещей.

Затем запустите ssh-add -K ~/.ssh/privateKey.txt. При необходимости вам будет предложено ввести ключевую фразу, а затем добавить ее в цепочку для ключей.

После этого вам не нужно больше ничего делать. Немного более длинное объяснение доступно здесь .

49 голосов
/ 26 июля 2012

Хранение паролей в цепочке для ключей

Чтобы сохранить ключевую фразу для вашего ключа по умолчанию в связке ключей, откройте терминал и запустите:

ssh-add -K

И для сохранения ключевой фразы запустите другой ключ:

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

Когда вас попросят ввести фразу-пароль, введите ее и все.

Вам никогда не потребуется ни запускать ssh-add, ни вводить вашу фразу-пароль.

Ответ взят с этого сайта: http://www -uxsup.csx.cam.ac.uk / ~ aia21 / OSX / леопард-ssh.html

19 голосов
/ 11 октября 2011

После долгих исследований, я думаю, я нашел ответ на этот вопрос полностью. Во-первых, убедитесь, что вы делаете 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, он попробует их по порядку. Я не уверен, что первые три по умолчанию, которые я перечислил, должны быть там, но я все равно включил их.

5 голосов
/ 26 января 2017

Начиная с 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

2 голосов
/ 15 декабря 2009

У меня нет большого опыта работы с macs, поэтому не уверен, что эта версия вам подойдет, но взгляните на http://www.phil.uu.nl/~xges/ssh/

Если это конкретное приложение не работает, это то, что вы ищете в любом случае - ssh agent. В Unix-подобных системах вы захотите запустить весь оконный менеджер, чтобы получить глобальный эффект, но это может быть невозможно в osx.

Дополнительная информация: http://www -uxsup.csx.cam.ac.uk / ~ aia21 / osx / leopard-ssh.html

1 голос
/ 21 декабря 2009

sshkeychain это одна возможность. Устанавливается нормально с macports, используя:

sudo port install sshkeychain

она использует цепочку для ключей для хранения паролей, и вы можете просто запустить ее при запуске сеанса входа в систему (используя при первом запуске обычный щелчок правой кнопкой мыши на значке дока + «запуск при запуске»)

Обратите внимание, что svn от Apple использует цепочку ключей для хранения паролей, но не обязательно двоичный файл svn, который вы собираете с помощью macports.

0 голосов
/ 24 июня 2018

Добавьте ключ в связку ключей, выполнив:

ssh-add -K ~/.ssh/id_rsa

и отредактируйте файл конфигурации ssh (~/.ssh/config), чтобы автоматически загружать ключи из цепочки ключей в ssh-agent (опция AddKeysToAgent yes) и сохранять пароли в цепочке для ключей (опция UseKeychain yes):

Host *
 AddKeysToAgent yes
 UseKeychain yes
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...