- Konu sahibi
- #1
cPanel'den özel bir Git deposuna bağlanmak için, cPanel hesabının uzak depoda yetkili bir SSH anahtarıyla kimlik doğrulaması gerekir. Yalnızca depo adresini Git Version Control ekranına yazmak özel depo erişimini sağlamaz. Anahtarın gizli kısmı sunucudaki hesapta kalır; açık kısmı uzak depo sağlayıcısına eklenir.
Bu rehber GitHub'daki özel bir depoyu cPanel hesabına salt okunur olarak çekme örneğini kullanır. Kaynak kodu sunucudan GitHub'a göndermek veya otomatik olarak web köküne yayınlamak ayrı işlemlerdir. İşlem yapılacak hesabın depoya erişim yetkisi bulunmalıdır.
Özel kodu doğrudan public_html altına klonlamayın. Önce hesabın web üzerinden sunulmayan bir klasörünü seçin. cPanel'in .git dizinini koruması, deponun diğer dosyalarının veya yanlışlıkla eklenmiş gizli yapılandırmaların herkese açık olmasını önleyen genel bir garanti değildir.
Komut gizli anahtar ile .pub uzantılı açık anahtarı oluşturur. Panelin etkileşimsiz çekimi için cPanel belgesindeki ayrı, passphrase içermeyen anahtar akışı kullanılabilir. Böyle bir anahtarı yalnız gerekli depoya okuma yetkisiyle sınırlayın; sunucuya erişen herkes için genel hesap anahtarı gibi paylaşmayın. Parolalı anahtar kullanıyorsanız otomatik işlemin bu parolayı kendiliğinden gireceğini varsaymayın.
Hesabın .ssh/config dosyasında mevcut kuralları koruyarak GitHub için şu seçimi yapılandırın:
Dosyanın izinleri 600 olmalıdır. Aynı host için önceden tanımlı kurallar varsa çelişkileri çözün; rastgele ikinci blok eklemek doğru anahtarın kullanılmasını garanti etmez.
Referanslar listelenirse uzak depoya okuma erişimi vardır. Boş bir depoda başarılı komut boş çıktı verebilir; yalnız ekranın boşluğuna bakmayın. Permission denied (publickey) hatasında seçilen anahtarı, Repository not found hatasında depo yolunu ve o depoya verilen izni kontrol edin.
Ardından cPanel Git Version Control > Create ekranında Clone a Repository seçeneğini kullanın. GitHub'ın verdiği SSH URL'sini ve web kökü dışındaki yeni hedef klasörü girin. Klonlama tamamlandığında yönetim ekranındaki yol ve geçmişi doğrulayın. URL'ye hesap parolası veya erişim token'ı gömmeyin.
Bu rehber GitHub'daki özel bir depoyu cPanel hesabına salt okunur olarak çekme örneğini kullanır. Kaynak kodu sunucudan GitHub'a göndermek veya otomatik olarak web köküne yayınlamak ayrı işlemlerdir. İşlem yapılacak hesabın depoya erişim yetkisi bulunmalıdır.
Önce hesap ve erişim koşullarını kontrol edin
Sağlayıcınız Git Version Control, SSH Access ve Terminal özelliklerini açmış olmalıdır. Özel depo için gereken SSH yapılandırması komut satırından yapılır; yalnız dosya yöneticisine erişmek yeterli değildir. Komutları root olarak değil, depoyu kullanacak cPanel hesabıyla çalıştırın.Özel kodu doğrudan public_html altına klonlamayın. Önce hesabın web üzerinden sunulmayan bir klasörünü seçin. cPanel'in .git dizinini koruması, deponun diğer dosyalarının veya yanlışlıkla eklenmiş gizli yapılandırmaların herkese açık olmasını önleyen genel bir garanti değildir.
Ayrı anahtar ve SSH yapılandırması
Terminalde mevcut anahtar ve config dosyasını inceleyin. Aşağıdaki örnek için wfn_repo_read adının kullanılmadığını doğrulayın; mevcut dosyanın üzerine yazmayın:
Bash:
mkdir -p "$HOME/.ssh"
chmod 700 "$HOME/.ssh"
ssh-keygen -t rsa -b 4096 -f "$HOME/.ssh/wfn_repo_read" -C "cpanel-repo"
Komut gizli anahtar ile .pub uzantılı açık anahtarı oluşturur. Panelin etkileşimsiz çekimi için cPanel belgesindeki ayrı, passphrase içermeyen anahtar akışı kullanılabilir. Böyle bir anahtarı yalnız gerekli depoya okuma yetkisiyle sınırlayın; sunucuya erişen herkes için genel hesap anahtarı gibi paylaşmayın. Parolalı anahtar kullanıyorsanız otomatik işlemin bu parolayı kendiliğinden gireceğini varsaymayın.
Hesabın .ssh/config dosyasında mevcut kuralları koruyarak GitHub için şu seçimi yapılandırın:
Kod:
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/wfn_repo_read
IdentitiesOnly yes
Dosyanın izinleri 600 olmalıdır. Aynı host için önceden tanımlı kurallar varsa çelişkileri çözün; rastgele ikinci blok eklemek doğru anahtarın kullanılmasını garanti etmez.
| Öğe | Nerede bulunur? | İşlevi |
|---|---|---|
| Gizli anahtar | cPanel hesabındaki .ssh klasörü | Uzak kimlik doğrulaması; paylaşılmaz |
| Açık anahtar (.pub) | GitHub depo Deploy keys ayarı | İzin verilen anahtarı tanıtır |
| SSH host anahtarı | Uzak hizmetin kimliği | Bağlanılan sunucuyu doğrular |
| Depo klonu | Web kökü dışındaki hesap klasörü | Kaynak dosyalarını içerir |
Açık anahtarı kaydedin ve erişimi sınayın
- wfn_repo_read.pub dosyasının içeriğini alın. Uzantısız gizli dosyanın içeriğini kopyalamayın.
- GitHub'da ilgili deponun Settings > Deploy keys bölümüne açık anahtarı ekleyin. Yalnız çekme yapılacaksa Allow write access seçeneğini açmayın.
- Terminalde ssh -T [email protected] ile kimlik doğrulamasını sınayın. İlk bağlantıda sunulan host parmak izini GitHub'ın resmî parmak iziyle karşılaştırmadan onaylamayın; değişen anahtarı körlemesine kabul etmeyin.
- Temsilî sahip/depo adlarını gerçek değerlerle değiştirerek aşağıdaki komutla depo yetkisini ayrıca kontrol edin.
Bash:
git ls-remote [email protected]:SAHIP/DEPO.git
Referanslar listelenirse uzak depoya okuma erişimi vardır. Boş bir depoda başarılı komut boş çıktı verebilir; yalnız ekranın boşluğuna bakmayın. Permission denied (publickey) hatasında seçilen anahtarı, Repository not found hatasında depo yolunu ve o depoya verilen izni kontrol edin.
Ardından cPanel Git Version Control > Create ekranında Clone a Repository seçeneğini kullanın. GitHub'ın verdiği SSH URL'sini ve web kökü dışındaki yeni hedef klasörü girin. Klonlama tamamlandığında yönetim ekranındaki yol ve geçmişi doğrulayın. URL'ye hesap parolası veya erişim token'ı gömmeyin.