Başlangıçta Karşılaşılan Sorun
SSH Authentication Failed Hatasının Sebepleri
1. SSH Anahtarları ve İzinler: Bu en yaygın sebeplerden biri. Ansible, hedef makinelerle bağlantı kurabilmek için SSH anahtarları kullanır. Eğer SSH anahtarlarınız doğru şekilde konfigüre edilmediyse, SSH Authentication Failed hatası alırsınız.
2. Doğru Kullanıcı ve Parola: Eğer SSH anahtarları yerine parola ile bağlantı kurmayı tercih ediyorsanız, doğru kullanıcı adı ve şifrenin girildiğinden emin olun. Çoğu zaman bu küçük bir yanlışlık nedeniyle hata alırsınız.
3. Ansible Konfigürasyonu: `ansible.cfg` dosyasındaki bazı ayarlar da hataya sebep olabilir. Özellikle `remote_user` parametresi doğru şekilde tanımlanmamış olabilir.
4. SSH Servisi ve Port Ayarları: Hedef makinelerde SSH servisi çalışmıyor ya da yanlış port kullanılıyor olabilir.
Çözüm Adımları
# 1. SSH Anahtarlarını Kontrol Edin
ssh-keygen -t rsa -b 4096
Oluşturduğunuz anahtarları, hedef sunucudaki `~/.ssh/authorized_keys` dosyasına eklemelisiniz. Bu adım için şu komutu kullanabilirsiniz:
ssh-copy-id -i ~/.ssh/id_rsa.pub kullanıcı_adı@hedef_ip
Bu, public anahtarınızı hedef makinize kopyalayacaktır. Eğer hala hata alıyorsanız, izinlerin doğru olduğundan emin olun. Anahtar dosyanızın izinleri şu şekilde olmalıdır:
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
chmod 700 ~/.ssh
# 2. Kullanıcı ve Parola Kontrolü
- name: Sunucuya SSH ile bağlan
hosts: all
remote_user: kullanıcı_adı
tasks:
- name: "Gerekli paketleri kur"
apt:
name: "{{ item }}"
state: present
loop:
- paket_1
- paket_2
# 3. Ansible Konfigürasyonunu Kontrol Edin
[defaults]
remote_user = kullanıcı_adı
private_key_file = /path/to/your/private/key
# 4. SSH Servisi ve Port Ayarları
systemctl status ssh
Ayrıca, hedef makinelerde kullanılan portun doğru olduğundan emin olun. Eğer standart port dışında bir port kullanıyorsanız, Ansible komutunuza port bilgisini eklemeyi unutmayın:
ansible -i hosts.ini all -u kullanıcı_adı -k --ssh-extra-args "-p 2222" -m ping
Bu adımları takip ederek SSH Authentication Failed hatasını çözebilirsiniz. Unutmayın, küçük bir konfigürasyon hatası bazen büyük sorunlara yol açabilir. Ancak, doğru adımlarla bu hatayı kolayca çözebilirsiniz.