Повторно импортируйте сертификат ssh после каждой перезагрузки, чтобы GIT PUSH через ssh работал

Повторно импортируйте сертификат ssh после каждой перезагрузки, чтобы GIT PUSH через ssh работал

Я использую OSX 10.8 на моем macbook air, у меня настроен git для отправки моего репозитория на экземпляр EC2 через ssh. С этим все работает отлично.

Единственная проблема в том, что после каждой перезагрузки мне приходится ssh-add certname.pemразрешать GIT подключаться к моему экземпляру ec2 по SSH.

Я не уверен, является ли это просто упущенной из виду проблемой конфигурации или же для этого есть более глубокая причина.

решение1

Ты не можешь использовать

ssh-add -K [keyfile]

добавить информацию в связку ключей? Тогда она будет там в следующий раз, когда вы запустите терминал, будучи авторизованным в этой связке ключей

решение2

Почему бы просто не создать ключ без пароля ипусть git/ssh использует этот ключ как свой SSHIdentityFile?
(хотя ssh-keygenпри генерации ключа вас попросят ввести парольную фразу, вы можете просто нажать ее, enterи полученный ключ не будет требовать парольной фразы для использования).

Поскольку вы хотите автоматически повторно добавить этот ключ, вы обходите любую защиту, которую в любом случае обеспечивало бы использование ключа, поэтому нет никакой практической разницы между ключом без пароля и ключом, который агент импортирует автоматически.


Очевидно, вы не хотите, чтобы этот ключ мог выполнять какие-либо функции, кроме доступа к вашему gitсерверу (на случай, если кто-то завладеет закрытой частью ключа, вы не хотите, чтобы он запускал команды от вашего имени!)

решение3

Вам нужно настроить скрипт для добавления pem в связку ключей OSX, добавив следующую строку в ваш ~/.bash_profile (или ~/.zshrc, если вы используете zsh)

ssh-add -K certname.pem

Проверьте этоhttps://superuser.com/a/409316/41202Больше подробностей

решение4

Хм. Это неудачное взаимодействие с дизайном ssh EC2. Вам настоятельно рекомендуется использовать файлы pem для доступа к экземплярам, ​​поэтому вы ssh -i <aws.pem>во всех их примерах подключения...

Как насчет псевдонима git? Я не тестировал это, так как у меня нет экземпляра EC2, на который можно было бы отправить изменения, но что-то вроде:

git config alias.ec2push "!sh -c 'ssh-add certname.pem && git push $1 $2'"

Затем вы бы нажали:

git ec2push <repo> <branch>

Связанный контент