AnyBucket SSH kurulumunuzu nasıl kullanır

Doldurmanız gereken ayrı bir anahtar deposu yoktur. SFTP için AnyBucket, Terminal'in kullandığı programla aynı olan /usr/bin/ssh programını başlatır; yani:

  • ~/.ssh içindeki özel anahtarlarınız çalışır,
  • SSH ajanınıza yüklenen anahtarlar çalışır,
  • ~/.ssh/config içindeki her Host bloğu, HostName, User, IdentityFile ve ProxyJump dahil uygulanır,
  • sunucu anahtarları, Terminal'in de paylaştığı ~/.ssh/known_hosts dosyasıyla denetlenir.

Temel kural: ssh user@host Terminal'de çalışıyorsa AnyBucket'ta da çalışır. Bir sunucu parola isterse parolalar giriş anahtar zincirinize kaydedilir.

Bir anahtar oluşturun ve sunucuya ekleyin

Henüz bir anahtarınız yoksa:

  1. Terminal'i açın ve ssh-keygen -t ed25519 komutunu çalıştırın. Varsayılan dosyayı (~/.ssh/id_ed25519) korumak için Return'e basın ve bir parola cümlesi seçin.
  2. Herkese açık yarıyı, ~/.ssh/id_ed25519.pub dosyasını, sunucudaki ~/.ssh/authorized_keys dosyasına ekleyin ya da sunucunun yöneticisine gönderin. .pub uzantısı olmayan dosyayı asla paylaşmayın.
  3. Deneyin: ssh user@host, sunucunun parolasını sormadan oturum açmalıdır.

Parola cümlesini her seferinde yazmamak için anahtarı ssh-add ile ajanınıza ekleyin. macOS parola cümlesini anahtar zincirinizde tutabilir.

Sunucularınızı ~/.ssh/config içinde adlandırın

Bir Host bloğu bir sunucuya kısa bir ad ve ona ulaşmak için gereken ayarları verir:

Host staging
  HostName staging.example.com
  User deploy
  IdentityFile ~/.ssh/id_ed25519

Artık ssh staging, o anahtarla deploy olarak oturum açar. AnyBucket'ta staging sunucusuna SFTP üzerinden bağlanın; aynı blok uygulanır, çünkü AnyBucket adı tıpkı Terminal gibi ssh programına iletir.

Bir sunucuya atlama sunucusu üzerinden ulaşın

Birçok sunucuya yalnızca bir bastion, yani atlama sunucusu (jump host) üzerinden ulaşılabilir. Terminal'de tek seferlik bir bağlantı için ssh -J bastion app yazarsınız. Kalıcı yapmak için ProxyJump kullanın:

Host bastion
  HostName bastion.example.com
  User me

Host app
  HostName 10.0.1.20
  User deploy
  ProxyJump bastion

Terminal'de ssh app ile deneyin. Oturum açtığında AnyBucket'ı SFTP üzerinden app sunucusuna bağlayın: bağlantı kendiliğinden bastion üzerinden geçer, uygulamada ayarlamanız gereken ek bir şey yoktur. Birden çok atlama da aynı şekilde, ProxyJump sonrasında virgülle ayrılmış bir listeyle zincirlenir.

Sunucu anahtarları: "henüz bilinmiyor" ya da "değişti"

Bir sunucuya ilk kez bağlandığınızda anahtarı henüz ~/.ssh/known_hosts dosyasında değildir ve AnyBucket, tıpkı Terminal gibi, ona güvenmeden önce sorar. Parmak izini sunucunuzun yöneticisinin yayımladığıyla karşılaştırın.

AnyBucket bir anahtarın değiştiğini söylüyorsa durun ve nedenini öğrenin. Bir sunucu yeniden kurulduktan sonra yeni bir anahtar beklenir. Aksi halde bağlanmayın: değişen bir anahtar, sandığınız sunucuyla konuşmadığınız anlamına gelebilir. Ayrıntılar sorun giderme sayfasında.

Çalışmadığında

  1. Önce Terminal'i deneyin, AnyBucket'ta kullandığınız sunucu adının tam aynısıyla: ssh staging. Bu başarısız olursa sorun uygulamada değil, SSH kurulumundadır.
  2. ssh programının hangi anahtarları ve yapılandırma satırlarını denediğini görmek için -v ekleyin (ssh -v staging).
  3. Ajanı ssh-add -l ile denetleyin: ajanın tuttuğu anahtarları listeler.
  4. İzinleri denetleyin: ssh, diğer kullanıcıların okuyabildiği özel anahtarları reddeder. chmod 600 ~/.ssh/id_ed25519 bunu düzeltir.

Hâlâ çözülmedi mi? SFTP anahtarları ya da atlama sunucuları çalışmıyor bölümüne bakın ya da ssh -v çıktısını, özel bilgileri çıkararak, desteğe e-postayla gönderin.