Ssh-keygen -R hostname kullanmak her zaman işe yaramayacaktır. SSH aracısı kaçırma önlemek için ana bilgisayar adlarını "gizleyen" SSH'nin daha yeni bir sürümüne sahipseniz, görünüşte ssh-keygen, ana bilgisayar adını kaldıramaz.
Örneğin, build-node-01 adında bir ana makinem var ve ona bağlandım ve anahtarı kabul ettim. Daha sonra sıfırdan yeniden yapıyorum, yeni bir ana bilgisayar parmak izi alıyorum ve yeniden bağlanmayı deniyorum, X hattında bir çatışma olduğunu belirten bir uyarı alacağım (diyelim 3). Koştum ssh-keygen -R hostname
, fakat bir daha bağlanmaya çalıştığımda hala bir çatışma olduğuna dair bir uyarı alıyorum. Dosyayı yalnızca ana makine adının toplandığını ve [1] Bu4Ch@R@4D0M57uFF
okunabilir bir ana bilgisayar adı olarak gösterildiğini keşfetmek için inceledim .
Bu durumda, rahatsız edici ana bilgisayarı başarıyla kaldırmanın tek yolu kullanmaktı.
sed -i 'xd' ~/.ssh/known_hosts
Bu adımı bir adım daha ileriye götürmek için, yanlış satırı silmeniz durumunda known_host'lerin yedeğini almak isteyebilirsiniz, bu durumda sadece bununla bir yedekleme oluşturmak için -i seçeneğine bir .bak (veya herhangi bir uzantı) ekleyin. uzantı. Ssh-keygen kullanmak bunu otomatik olarak yapar.
sed -i.bak 'xd' ~/.ssh/known_hosts