Mehmet

WFN Üye
Konular
1,851
Mesajlar
1,852
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi
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.

Ö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.

ÖğeNerede bulunur?İşlevi
Gizli anahtarcPanel 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ğiBağlanılan sunucuyu doğrular
Depo klonuWeb kökü dışındaki hesap klasörüKaynak dosyalarını içerir

Açık anahtarı kaydedin ve erişimi sınayın​

  1. wfn_repo_read.pub dosyasının içeriğini alın. Uzantısız gizli dosyanın içeriğini kopyalamayın.
  2. 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.
  3. 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.
  4. 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.

Sık sorulan sorular​

GitHub kimliği doğrulandı ama neden shell access yok diyor?​

GitHub Git işlemlerine izin verir, etkileşimli shell sunmaz. Başarılı ssh -T kimlik doğrulaması bu açıklamayla ve çıkış kodu 1 ile bitebilir. Bu sonucu tek başına depo klonlama hatası saymayın; depo okuma yetkisini ls-remote ile ayırın.

Depoyu klonlamak siteyi otomatik günceller mi?​

Hayır. Depoya erişim, uzak değişiklikleri çekme ve çalışan siteye dağıtma farklı aşamalardır. cPanel'in dağıtım mekanizması ve gerekiyorsa .cpanel.yml görevleri ayrıca planlanır. Bir anahtarın çalışması üretim dosyalarını güvenle değiştirebileceğiniz anlamına gelmez.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.