Alibaba Cloud Devops Codeup depoları HTTP(S) ve Secure Shell (SSH) erişim protokollerini destekler. SSH protokolü şifresiz ve güvenli kimlik doğrulama sağlar; HTTP(S) protokolüne kıyasla daha iyi performans sunar. Bu konuda, Codeup içinde kodu göndermek (push) ve almak (pull) için SSH anahtarının nasıl yapılandırılacağı ve kullanılacağı açıklanır.
Önkoşullar
Bir kod deposuyla çalışmak üzere SSH protokolünü kullanabilmek için öncelikle bir SSH genel anahtarı oluşturmalı ve bunu Alibaba Cloud Devops hesabınıza yüklemelisiniz.
Codeup'a SSH protokolüyle erişebilmek için aşağıdaki gereksinimleri karşılamanız gerekir.
Yerel makinenizde Git V1.9 veya sonraki bir sürüm yüklüdür konusuna bakın. Yüklü sürümü denetlemek için
git --versionkomutunu çalıştırın.Yerel makinenizde OpenSSH istemcisi yüklüdür. GNU/Linux, macOS ve Windows 10 üzerinde OpenSSH ön yüklü olarak gelir.
SSH sürümünüzü güncel tutun. 6,5'ten önceki sürümler MD5 imzaları kullandığından güvenlik açıkları içerebilir.
Arka plan bilgileri
Codeup aşağıdaki SSH şifreleme algoritma türlerini destekler:
|
|
|
|
|
|
|
|
|
|
|
|
Adım 1: Mevcut SSH anahtarlarını denetleme
Yeni bir SSH anahtarı oluşturmadan önce, kullanabileceğiniz mevcut bir anahtar olup olmadığını denetleyin. SSH anahtar çiftleri genellikle yerel kullanıcının kök dizininde saklanır.
Linux ve macOS'ta mevcut bir genel anahtarı denetlemek için aşağıdaki komutu çalıştırın. Windows'ta komutu WSL (Windows 10 veya sonrası gerekir) ya da Git Bash içinde çalıştırın:
ED25519 algoritması
cat ~/.ssh/id_ed25519.pub
RSA algoritması
cat ~/.ssh/id_rsa.pub
Komut ssh-ed25519 veya ssh-rsa ile başlayan uzun bir dize döndürüyorsa, yerel bir genel anahtar zaten vardır. Adım 2'yi atlayıp doğrudan Adım 3'e geçebilirsiniz.
Adım 2: SSH anahtarı oluşturma
Adım 1'deki komut herhangi bir dize döndürmüyorsa, yerel makinenizde kullanılabilir bir SSH anahtarı yok demektir. Bu durumda yeni bir SSH anahtarı oluşturmanız gerekir.
Bir terminal açın ve
ssh-keygen -tkomutunu çalıştırın.Anahtar algoritma türünü ve isteğe bağlı bir yorum belirtin. Yorum,
.pubdosyasında görünür. Yorum olarak e-posta adresinizi kullanabilirsiniz.
-
ED25519algoritmasını kullanarak bir anahtar çifti oluşturmak için aşağıdaki komutu çalıştırın:ssh-keygen -t ed25519 -C "<your_comment>" -
RSAalgoritmasını kullanarak bir anahtar çifti oluşturmak için aşağıdaki komutu çalıştırın:ssh-keygen -t rsa -C "<your_comment>"
SSH anahtarı için varsayılan dosya yolunu kabul etmek üzere Enter tuşuna basın.
-
ED25519 algoritması için varsayılan yol aşağıda gösterilmiştir:
Generating public/private ed25519 key pair. Enter file in which to save the key (/home/user/.ssh/id_ed25519):Özel anahtarın varsayılan yolu
/home/user/.ssh/id_ed25519; karşılık gelen genel anahtar ise/home/user/.ssh/id_ed25519.pubkonumundadır. -
RSA algoritması için varsayılan yol aşağıda gösterilmiştir:
Generating public/private rsa key pair. Enter file in which to save the key (/home/user/.ssh/id_rsa):Özel anahtarın varsayılan yolu
/home/user/.ssh/id_rsa; karşılık gelen genel anahtar ise/home/user/.ssh/id_rsa.pubkonumundadır.
-
Anahtar için bir parola ifadesi belirleyin.
Enter passphrase (empty for no passphrase): Enter same passphrase again:Parola ifadesi varsayılan olarak boştur. Özel anahtar dosyasını korumak amacıyla bir parola ifadesi kullanabilirsiniz. SSH protokolünü her kullandığınızda parola ifadesi girmek istemiyorsanız, anahtarı oluştururken bu alanı boş bırakın.
Anahtar çiftini oluşturmak için Enter tuşuna basın.
Anahtar kimlik doğrulama amacıyla kullanılır. Özel anahtarınızı güvende tutun. Genel anahtar dosyasının uzantısı .pub şeklindedir ve paylaşılabilir. .pub uzantısı olmayan özel anahtar dosyasını kimseyle paylaşmayın.
Adım 3: Genel anahtarı kopyalama
Genel anahtarı komut satırı çıktısından elle kopyalamak yerine, panoya kopyalamak için bir komut kullanabilirsiniz. İşletim sisteminize uygun komutu çalıştırın:
Windows (WSL veya Git Bash içinde):
cat ~/.ssh/id_ed25519.pub | clip
macOS:
tr -d '\n' < ~/.ssh/id_ed25519.pub | pbcopy
GNU/Linux (xclip gerektirir):
xclip -sel clip < ~/.ssh/id_ed25519.pub
Adım 4: Genel anahtarı Codeup'a ekleme
Alibaba Cloud DevOps'ta oturum açın. Sağ üst köşede profil resminize tıklayın ve personal settings seçeneğini belirleyin, ardından SSH public key seçeneğine gidin.
Oluşturduğunuz SSH genel anahtarını ekleyin.
-
Public Key
Notssh- ile başlayıp e-posta adresinizle biten genel anahtarın tamamını kopyalayın.
Name: Anahtarı tanımlamak için özel bir ad.
Applicable Scope: Anahtarın kapsamı; okuma/yazma veya yalnızca okuma olabilir. Yalnızca okuma olarak ayarlandığında, anahtar yalnızca kodu almak (pull) için kullanılabilir; kod göndermek (push) için kullanılamaz.
Expiration date: Anahtarın sona erdiği tarih. Bu tarihten sonra anahtar geçersiz hale gelir.
Anahtarı kaydetmek için Add düğmesine tıklayın.
SSS
Birden çok yerel anahtarım varsa, belirli bir platform için doğru anahtar otomatik olarak nasıl seçilir?
Birden çok yerel anahtarınız varken kimlik doğrulama kuralları belirlemezseniz, yerel makineniz kimlik doğrulama için rastgele bir anahtar seçebilir. Bu durum kimlik doğrulama hatalarına neden olabilir.
Aşağıdaki senaryolarda kimlik doğrulama anahtarının yolunu tanımlamanızı öneririz:
Farklı Alibaba Cloud Devops hesapları için birden çok anahtarınız var.
GitLab, GitHub ve Alibaba Cloud Devops gibi farklı kod platformları için birden çok anahtarınız var.
Kimlik doğrulama anahtarı yolu kurallarını tanımlama
Yerel bir terminal açın ve ~/.ssh/config dosyasını düzenleyin. Windows'ta WSL (Windows 10 veya sonrası gerekir) ya da Git Bash kullanın. Dosyayı aşağıdaki biçimde düzenleyin:
# Codeup example user 1
HostName codeup.aliyun.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_ed25519
# Codeup example user 2, with alias codeup-user-2
Host codeup-user-2
HostName codeup.aliyun.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/codeup_user_2_ed25519
# GitLab platform
HostName gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitlab_ed25519
Bu yapılandırmayla, bir platforma eriştiğinizde SSH istemcisi kimlik doğrulama için belirtilen anahtarı kullanır. Böylece aynı platformdaki farklı hesaplar veya farklı platformlar için farklı yerel SSH anahtarları kullanabilirsiniz.
Alibaba Cloud Devops'a erişirken HostName her iki hesap için de aynı olduğundan anahtarı seçmek için bir takma ad kullanın.
GitLab'a erişirken anahtar HostName değerine göre seçilir.
# Access Codeup, uses the ~/.ssh/id_ed25519 key
git clone git@codeup.aliyun.com:example/repo.com
# Access Codeup with the alias codeup-user-2, uses the ~/.ssh/codeup_user_2_ed25519 key
git clone git@codeup-user-2:example/repo.com
# Access the GitLab platform, uses the ~/.ssh/gitlab_ed25519 key
git clone git@gitlab.com:example/repo.com