Повторно импортируйте сертификат 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>
Другие вопросы по тегам