LINUX.ORG.RU

настроить git через ssh

 , , , ,


0

1

Доброго времени суток, уважаемые.

Имеется локальная машина, на которой я делаю сайт, и удаленная vps, куда его нужно перенести. На обоих Ubuntu и уже установлен git. Я могу подключаться через ssh к удаленной машине, но при попытке запушить на нее мой репозиторий получаю ошибку.

user@comp:~/www/test$ git push -u ft master user@remotecomp's password: Counting objects: 74, done. Delta compression using up to 4 threads. Compressing objects: 100% (64/64), done. Writing objects: 100% (74/74), 109.40 KiB | 0 bytes/s, done. Total 74 (delta 25), reused 0 (delta 0) remote: error: insufficient permission for adding an object to repository database ./objects remote: fatal: failed to write object error: unpack failed: unpack-objects abnormal exit To user@remotecomp:/var/www/test ! [remote rejected] master -> master (unpacker error) error: failed to push some refs to 'user@remotecomp:/var/www/test'

ну вот. Дело в том, что git на удаленном компе не получил информации о моем ssh ключе на локальной машине. Ну я так думаю)

я нагуглил много примеров, как сделать нечто подобное с гит хабом, но это немного не то. Там, после генерации ключа на локальной машине(с помощью ssh-keygen, я это уже сделал и у меня есть папка .ssh и в ней файлы id_rsa и id_rsa.pub) этот ключ вставляется на сайт и все работает. Я предполагаю, что именно в этом проблема - вопрос куда и как записать этот ключ на удаленном компе?!)

Я предполагаю, что именно в этом проблема - вопрос куда и как записать этот ключ на удаленном компе?!)

~/.ssh/authorized_keys

только не вздумай под рутом!

emulek
()
Ответ на: комментарий от emulek

PS: id_rsa.pub это одна строка. Эту строку надо добавить в конец .ssh/authorized_keys

emulek
()

У тебя не с доступом ли проблема юзера user в папку /var/www/test?

Олсо

$ cd /opt/git
$ mkdir project.git
$ cd project.git
$ git --bare init
делал?
http://git-scm.com/book/en/Git-on-the-Server-Setting-Up-the-Server

Олсо, разворачивать сайт gitом не есть хорошая идея, по крайней мере, не забудь закрыть доступ к папке .git (если это имеет смысл). Для развертывания сайта, есть capistrano, например.

special-k ★★★
()
Последнее исправление: special-k (всего исправлений: 2)

В общем, были проблемы с тем, что в authorized_keys был записан какой-то старый ключ(видимо, я несколько раз создавал)

Так же не было прав доступка к папке)

Я все делал по вашей ссылке, special-k, но упустил --bare.

Исправив ключ и создав репозиторий с помощью --bare, я сумел запушить на удаленный комп ветку мастер командой git push -u ft master... И тут же столкнулся с проблемой - мой сайт хранится в гит репозитории на удаленном сервере, а как его распаковать? Мне нужно как-то сделать, чтобы командой git push, не только заливались изменения в репозиторий, но и сразу менялись файлы... Реально вообще провернуть такое?

riosteyn
() автор топика
Ответ на: комментарий от riosteyn

а это уже не работа гита доллжна быть. ты слишком многого от гита хочешь, или не за того его принимаешь.

funeralismatic ★★★
()
Ответ на: комментарий от riosteyn

git push, не только заливались изменения в репозиторий, но и сразу менялись файлы... Реально вообще провернуть такое?

да, правильно сказали, что это не работа гита. Однако

http://git-scm.com/book/ru/Настройка-Git-Перехватчики-в-Git

emulek
()
Ответ на: комментарий от emulek

да, я обычно делаю с другой стороны — сервер работает как DVCS клиент, и делает git pull, затем заливает файлы куда надо.

emulek
()
Ответ на: комментарий от riosteyn

в git я делал, уже не помню, на какой хук, git reset --hard (не знаю, правильно или не правильно, звучит команда глупо, но работало).

в hg - вот так (hg проще, зачем тебе git, если ты даже основ не знаешь?):

в hgrc репозитория:

[hooks]
changegroup = hg update

ну, и, сооветственно, если нужны ещё действия, вызывать не апдейт, а скрипт, который начинается с апдейта.

feofil
()

Теперь я понял, что к чему! git clone - вот, что я искал) теперь постараюсь сделать через hook, чтобы git clone выполнялось автоматически и принудительно переписывало уже существующие файлы

Большое спасибо всем участникам дискусии.

riosteyn
() автор топика
Ответ на: комментарий от riosteyn

пуш в репу, из репы деплой, вот как ты будешь делать деплой это уже другой вопрос. самое постое через fabric

st4l1k ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.