Ana içeriğe geç

GitHub

Bu sayfa, GitHub erişiminin nasıl uygulandığı hakkında bilgi vermektedir.

Deployment Key Kullanımı

Github repository'lerine erişim için Deployment Key kullanılmaktadır. Deployment Key'ler özellikle uygulama sunucuları (ör. development VM, production VM) üzerinde kullanılmak üzere tasarlanmıştır. Böylece doğrudan uygulama VM'lerinizde çalışırken git pull origin main gibi komutlar sorunsuzca çalışır. Deployment Key, sadece ilgili repository'ye erişim hakkı verir ve farklı uygulamalarda ya da branchlerde kullanılmaz. Her bir repository için ayrı bir Deployment Key oluşturmalı ve bunu repository ayarlarından eklemelisiniz.

Deployment Key Ekleme Adımları

  1. Localde veya bastion host üzerinde yeni bir SSH anahtarı oluşturun:
    ssh-keygen -t rsa -b 4096 -C "github-access" -f ~/.ssh/github-deploy-key
  2. Oluşan github-deploy-key.pub dosyasının içeriğini kopyalayın.
  3. GitHub üzerinde ilgili repository'e gidin ve Settings > Deploy keys menüsüne tıklayın.
  4. Add deploy key butonuna tıklayın, başlık girin ve Public Key'i (dosyanın içeriğini) yapıştırın.
  5. Gerekirse Allow write access seçeneğini de işaretleyin.

GitHub Actions (CI/CD) için SSH Bağlantı Ayarları

GitHub Actions üzerinden uygulama sunucularına erişmek için bastion host üzerinden erişim sağlanmalıdır. Uygulama sunucularının SSH bağlantı ayarları aşağıdaki gibi gerçekleştirilir:

~/.ssh/config dosyası bastion host üzerinde aşağıdaki şekilde yapılandırılmalıdır. Bu yapılandırma doğrudan bastion host üzerinde gerçekleştirilmelidir, uygulama sunucularında değil.

Bastion Host için SSH config:

# dev app için (GitHub Actions VM CI/CD)
Host dev_app
HostName 10.0.6.4
User app-dev-user
IdentityFile /home/wastelog-bastion/.ssh/wastelog-bastion.pem
StrictHostKeyChecking no

# prod app için (GitHub Actions VM CI/CD)
Host prod_app
HostName 10.0.7.4
User app-prod-user
IdentityFile /home/wastelog-bastion/.ssh/wastelog-bastion.pem
StrictHostKeyChecking no

Not:

  • SSH config dosyasındaki bu düzenlemeler mutlaka bastion host üzerinde yapılmalıdır.
  • Uygulama sunucularında ya da başka bir yerde yapılandırma yapılmamalıdır.

Ek Bilgiler

  • Dağıtımdan önce anahtarların ve izinlerin doğru şekilde yapılandırıldığından emin olun.
  • Güvenlik için anahtarınızı kimseyle paylaşmayın ve sadece gereklilik halinde yeni anahtar üretin.