Sadece mercurial pulls / klonlar için bir ssh-key oluşturma


3

Uzaktaki kullanıcılara dağıtabilmem için bir ssh anahtarı (şifresiz) yapmak istiyorum, böylece depolarımın hg çekmesini veya hg klonunu yapabilirler. Sadece / usr / bin / hg komutunu kullanan, ancak klonlama veya çekme komutlarını kullanırken işe yaramaz, çünkü komut dizesi uzaktaki komut çağrısı ne olursa olsun eşleşmediği için ssh anahtarını yaptığım sürece kazandım. dahili olarak kullanır.

Aşağıdakileri yaptığınızda, uzak ana bilgisayarda mercurial komutlarının çalıştırılması mümkün müdür:

hg clone ssh://user@host//path-to-repo
hg pull ssh://user@host//path-to-repo

Ve tüm üslerimi kapsayacak bir çift komut dizesini güvenilir bir şekilde bulabilir miyim? Belirli bir revizyonla çekeceklerse, bu ssh üzerinden farklı bir uzaktan komut kullanır mıydı?

Yanıtlar:


5

Mercurial, bu tür sınırlı erişim için tam olarak ayarlanmış kullanışlı bir komut dosyasıyla birlikte gelir. Betik muhtemelen sunucunuzda ve hg-ssh olarak adlandırılmış, ancak burada da bulabilirsiniz: http://www.selenic.com/repo/hg-stable/raw-file/tip/contrib/hg-ssh

Kullanmak için, /home/user/.ssh/authorized_keysdosyanıza şöyle bir satır koyun :

command="hg-ssh path/to/repo1 /path/to/repo2 ~/repo3 ~user/repo4" ssh-dss ...

Bu anahtar olan kişilerin yalnızca mercurial (kabuk değil) ve yalnızca sizin listelediğiniz depolarda kullanabildiğinden emin olmanızı sağlar.


2

Bu yüzden itmelerine izin vermek istemiyorsanız, Ry4an'ın cevabına ek olarak hg-ssh komutu için salt okunur seçeneğini kullanmanızı öneririm.


0

İçin kaydolun Bitbucket ve ona deponuzu klonlamak.

Ardından, dağıtım anahtarları oluşturabilir ve bunları kullanıcılarınıza dağıtabilirsiniz.

Alternatif olarak, kullanıcılarınızın Bitbucket'e kaydolmasını ve salt okunur izin vermesini sağlayın. Ardından, https kullanarak depoya erişebilirler veya ortak anahtarlarını yüklerlerse ssh.


Bu, herhangi bir sayıda özel depoda değiştirildi.
viraptor
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.