SSH keys to managed nodes
1) SSH Key Nedir ve Neden Önemlidir?
SSH Key’ler, makinenize kullanıcı adı ve şifre girmeden (passwordless) bağlanmanızı sağlayan bir “anahtar” sistemidir.
İki dosyadan oluşur:
Private Key: Sizin makinenizde (yerel) kalmalı ve asla başka biriyle paylaşılmamalıdır.
Public Key: Hedef (remote) makinenin belirli bir dosyasında saklanır; bu sayede o makine, sizin Private Key’inizle eşleştiğini doğrular.
Bu ikiliyi bir “kilit ve anahtar” gibi düşünebilirsiniz. Public Key uzak makinede “kilit” görevi görür. Sadece “uyumlu Private Key” (sizin anahtarınız) o kilidi açabilir.
2) SSH Key’lerinizi Nasıl Oluşturursunuz?
Kontrol Makinenize (yani Ansible kurulu olan makineye) giriş yapın.
Terminalde şu komutu çalıştırın:
Komut size birkaç soru sorar (örneğin, key’i nereye kaydetmek istediğiniz veya bir parola belirlemek isteyip istemediğiniz gibi). Eğer varsayılan seçeneklerle devam ederseniz,
~/.ssh/id_rsa
(özel anahtar) ve~/.ssh/id_rsa.pub
(açık anahtar) isimli iki dosya oluşur.
3) Public Key’i (Açık Anahtar) Uzak Makineye Nasıl Kopyalarsınız?
Yöntem 1: Elle Kopyalama
Public Key içeriğine bakın:
Çıktıyı kopyalayın ve hedef makinede (örneğin
web1
sunucusunda) şu dosyaya ekleyin:Dosya yoksa oluşturabilirsiniz. Ardından aşağıdaki gibi kontrol edin:
Public Key metniniz orada olmalı.
Artık Ansible kontrol makinenizdeki özel anahtar (id_rsa) ile, hedef makineye şifresiz erişebilirsiniz.
Yöntem 2: ssh-copy-id
Aracı
ssh-copy-id
AracıSSH copy-id, public key’inizi hedef makineye otomatik olarak ekleyen kolay bir araçtır:
Önce uzak makinenin şifresini sorar (ilk bağlantı için). Kopyalama bittiğinde şifreye gerek kalmaz.
4) Ansible Ortamında SSH Keys Kullanımı
Kontrol Makinesi: SSH anahtarlarınızı barındıran makine.
Yönetilen Makineler (Managed Nodes): Public Key’inizi authorized_keys dosyalarına eklediğiniz sunucular.
Ansible, hedef sistemlere bağlanırken SSH kullanır. Dolayısıyla, private key’iniz ile hedef makinelere parolasız erişebilirsiniz.
Envanter (hosts) Dosyanızı Güncelleme
Eskiden şöyle bir envanter kullanıyor olabilirsiniz:
Parolayla kimlik doğrulamayı bırakıp SSH Key’e geçmek için artık ansible_ssh_pass
kısmını kaldırabilirsiniz. Ayrıca eğer root kullanıcısı dışında farklı bir kullanıcıyla (örnek: ansible
) bağlanacaksanız, bunu belirtmeniz gerekir:
Eğer private key (id_rsa) dosyanız varsayılan
~/.ssh/
yolunda ise, Ansible bunu otomatik algılar.Eğer özel bir yerde saklıyorsanız, şöyle belirtmeniz yeterli:
5) Sonraki Adımlar
Şifre Tabanlı Girişleri Kapatma: Sunucularınızda her şey sorunsuz çalıştıktan sonra, ekstra güvenlik için
PasswordAuthentication no
ayarlayarak parolalı girişi engelleyebilirsiniz.Otomatikleştirme: Yüzlerce sunucunuz varsa,
ssh-copy-id
veya Ansible modülleri (örneğin,authorized_key
) ile bu işlemi toplu halde yapabilirsiniz.Güvenlik İpuçları: Private key’inizi mutlaka korunaklı bir yerde saklayın; paylaşılan dizinlerde bulundurmayın.
6) Özet
SSH Anahtarları “kilit & anahtar” mantığıyla çalışır. Private Key sizde kalır, Public Key uzak makinede
authorized_keys
içine eklenir.Parolasız Bağlantı: Anahtarlar doğru eşleşiyorsa parola girmenize gerek kalmaz.
Ansible Entegrasyonu: Ansible, normal SSH bağlantısını kullanır, dolayısıyla bu adımları yaptıktan sonra envanter dosyanızda kullanıcı ve key bilgilerini ayarlamanız yeterli.
Güvenlik: Parolasız erişim sağlamak, doğru yapılandırıldığında (örneğin password-based login’i kapatarak) çok daha güvenli ve pratik bir yöntemdir.
Last updated
Was this helpful?