Mam programistyczny serwer git, który wdraża się na serwerze działającym, gdy live
gałąź jest przekazywana. Każdy użytkownik ma swój login i dlatego post-receive
hak, który wykonuje wdrożenie na żywo, jest uruchamiany pod własnym użytkownikiem.
Ponieważ nie chcę utrzymywać kluczy publicznych użytkowników jako kluczy autoryzowanych na zdalnym serwerze na żywo, stworzyłem zestaw kluczy, które „należą do systemu git w celu dodania do zdalnych serwerów na żywo (w post-receive
haku używam $GIT_SSH
aby ustawić klucz prywatny z -i
opcją).
Mój problem polega na tym, że ze względu na to, że wszyscy użytkownicy mogą chcieć wdrożyć na żywo, klucz prywatny systemu git musi być co najmniej czytelny dla grupy, a SSH naprawdę tego nie lubi.
Oto próbka błędu:
XXXX@XXXX /srv/git/identity % ssh -i id_rsa XXXXX@XXXXX
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0640 for 'id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: id_rsa
Rozejrzałem się dookoła, oczekując, że znajdę coś, co zmusiłoby ssh do przejścia przez połączenie, ale nie znalazłem nic prócz ludzi ślepo mówiących, że po prostu nie powinieneś pozwalać na dostęp do niczego oprócz jednego użytkownika.