Я установил парольную фразу при создании нового SSH-ключа на моем ноутбуке. Но, как я понимаю сейчас, это довольно болезненно, когда вы пытаетесь совершить (Git и SVN) в удаленном месте через SSH много раз в час.
Один из способов, о котором я могу думать, - удалить мои ключи SSH и создать новый. Есть ли способ удалить кодовую фразу, сохраняя при этом одни и те же ключи?
Короткий ответ:
$ ssh-keygen -p
Затем вам будет предложено ввести местоположение ключевого файла, старую фразу и новую кодовую фразу (которую можно оставить пустым, чтобы не иметь парольной фразы).
Если вы хотите сделать все это на одной строке без подсказок:
$ ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
Важно:. Остерегайтесь того, что при выполнении команд они обычно записываются в ваш ~/.bash_history
файл (или аналогичный) в виде обычного текста, включая все предоставленные аргументы (т.е. парольные фразы в этом случае). Поэтому рекомендуется использовать первый вариант, если у вас нет конкретной причины для этого.
Возможно, вам захочется использовать ssh-agent, который может кэшировать временную фразу. Последние версии gpg-агента также поддерживают протокол, который используется ssh-agent.
ssh-keygen -p
в терминале. Затем вам будет предложено ввести ключевой файл (по умолчанию это правильный файл для меня, ~/.ssh/id_rsa
), старую фразу-пароль (введите то, что у вас есть сейчас) и новую фразу-пароль (ничего не вводить).
ssh-keygen -p -P oldpassphrase -N "" -f ~/.ssh/id_rsa
Возможно, вы захотите добавить следующее в свой .bash_profile (или эквивалент), который запускает ssh-agent при входе в систему.
if [ -f ~/.agent.env ] ; then
. ~/.agent.env > /dev/null
if ! kill -0 $SSH_AGENT_PID > /dev/null 2>&1; then
echo "Stale agent file found. Spawning new agent… "
eval `ssh-agent | tee ~/.agent.env`
ssh-add
fi
else
echo "Starting ssh-agent"
eval `ssh-agent | tee ~/.agent.env`
ssh-add
fi
На некоторых дистрибутивах Linux (Ubuntu, Debian) вы можете использовать:
ssh-copy-id -i ~/.ssh/id_dsa.pub username@host
Это скопирует сгенерированный идентификатор на удаленный компьютер и добавит его в удаленный брелок.