Повторно импортируйте сертификат ssh после каждой перезагрузки для работы GIT PUSH через ssh
Я использую OSX 10.8 на моем MacBook Air, я настроил Git для отправки моего хранилища в экземпляр EC2 через SSH. Все отлично работает с этим.
Единственная проблема заключается в том, что после каждой перезагрузки я должен ssh-add certname.pem
чтобы GIT мог подключиться к моему экземпляру ec2 через SSH.
Я не уверен, является ли это просто упущенной проблемой конфигурации, или есть более глубокая причина для этого.
4 ответа
Вы не можете использовать
ssh-add -K [keyfile]
добавить информацию в свой брелок? Тогда он будет там в следующий раз, когда вы запустите терминал во время аутентификации на этой цепочке для ключей
Почему бы просто не установить ключ без пароля и использовать git/ssh в качестве своего SSH IdentityFile
?
(хотя ssh-keygen
просит вас ввести ключевую фразу, когда вы генерируете ключ, вы можете просто нажать Enter, и полученный ключ не будет требовать использования ключевой фразы).
Поскольку вы хотите автоматически повторно добавить этот ключ, вы обходите все средства защиты, которые в любом случае дает вам использование ключа, поэтому нет практической разницы между ключом без пароля и ключом, который агент автоматически импортирует.
Очевидно, вы не хотите, чтобы этот ключ мог делать что-либо, кроме доступа к вашему git
сервер (в случае, если кто-то получает в свои руки половину ключа, вы не хотите, чтобы он выполнял команды так же, как вы!)
Вам нужно настроить скрипт, чтобы добавить pem в цепочку ключей OSX и добавить строку ниже в ваш ~/.bash_profile (или ~/.zshrc, если вы используете zsh)
ssh-add -K certname.pem
Проверьте это /questions/128324/mozhet-kto-nibud-skazat-mne-pochemu-moj-server-ubuntu-vyishel-iz-stroya/128326#128326 для более подробной информации
Хммм. Это неудачное взаимодействие с ssh-дизайном EC2. Вам настоятельно рекомендуется использовать pem-файлы для доступа к экземплярам, поэтому вы ssh -i <aws.pem>
во всех их примерах подключения...
Как насчет git alias? Я не проверял это, поскольку у меня нет экземпляра EC2, на котором можно нажать, но что-то вроде:
git config alias.ec2push "!sh -c 'ssh-add certname.pem && git push $1 $2'"
Тогда вы нажмете:
git ec2push <repo> <branch>