Spiegherò prima la mia configurazione. Sto lavorando su un sistema non autogestito sul quale ho un account senza privilegi di root / elevati. Su questo sistema voglio condividere più repository git con diversi gruppi di persone. Le azioni intraprese per realizzare un repository git condiviso sono le seguenti. Li ho divisi in comandi eseguiti in un terminale bash sul sistema REMOTO e LOCALE. ps: sostituisce qualsiasi variabile circondata dai delimitatori <e> con valori appropriati.
----------- REMOTO (il mio sistema): -----------
bash-4.2> mkdir -p <path>/<to>/project.git
bash-4.2> cd <path>/<to>/project.git
bash-4.2> git init --bare
bash-4.2> ssh-keygen -t rsa -f ~/.ssh/gitkey_rsa -N <password>
bash-4.2> echo "command=\"git-shell -c \\\"\$SSH_ORIGINAL_COMMAND\\\"\",
no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty \
$(cat ~/.ssh/gitkey_rsa.pub)" >> ~/.ssh/authorized_keys
Questi comandi eseguono le seguenti operazioni:
- crea un repository git
- genera una chiave ssh
- aggiungi la chiave a authorized_keys con restrizioni anticipate
----------- LOCAL (altri utenti) -----------
bash-4.2> mv <path>/<to>/gitkey_rsa ~/.ssh
bash-4.2> echo -e "Host gitserver\n\
\tHostName <remote server>\n\
\tUser <remote user>\n\
\tIdentityFile ~/.ssh/gitkey_rsa" >> ~/.ssh/config
bash-4.2> git clone gitserver:/home/<remote user>/<path>/<to>/project.git
Questi comandi eseguono le seguenti operazioni:
- posizionare la chiave rsa nella directory ~ / .ssh
- aggiungi una regola a ~ / .ssh / config specificando il nome host 'gitserver' con chiave
- recuperare i contenuti del repository
I comandi utilizzati si basano sulla limitazione dell'accesso solo a git . Usando la chiave riservata, un utente può eseguire solo comandi git. Il problema è che l'utente può anche accedere a tutti i repository git sul sistema remoto. Vorrei limitare l'accesso a un solo repository per chiave ssh. In altre parole, vorrei limitare l'accesso a una cartella, contenente il repository git, attraverso le restrizioni dei tasti ssh.
Le soluzioni che ho trovato finora sono: accedere a determinate directory solo tramite ssh e Limitare l'utente SSH a una cartella . Vogliono che tu installi un (S) server FTP, WebDAV o crei un nuovo utente con privilegi limitati. Questo non è quello che sto cercando, in quanto richiede i privilegi di root. A causa del fatto che i comandi possono essere limitati con le restrizioni dei tasti ssh, non esiste un modo per limitare anche i privilegi di accesso?
Saluti