Uzak Sunucuya Bağlanma
Komut satırından ssh ile bir sunucuya bağlanmak oldukça kolaydır.
eaydin@dixon ~ $ ssh 94.103.47.66
eaydin@94.103.47.66's password:
Yukarıdaki gibi bağlandığımızda sunucu şifre sormaktadır. Bir kullanıcı adı belirtmediğimiz için, mevcut kullanıcıyı parametre olarak göndermiştir. Oysa ki sunucuya root kullanıcısı ile bağlanmak istiyorduk.
eaydin@dixon ~ $ ssh root@94.103.47.66
root@94.103.47.66's password:
Bu noktada root şifresini girip sisteme bağlanabiliriz.
Bazı durumlarda ssh sunucusunun portu farklı olabilir. Bu, yaygın güvenlik önlemlerinden birisidir. Örneğin yukarıdaki sunucumuzun portu standart SSH portu olan 22 yerine 2291 olsaydı, aşağıdaki gibi bağlanabilirdik.
ssh root@94.103.47.66 -p 2291
Kimlik Doğrulama Yöntemini Seçme
Sunucuya şifreyle bağlanmak yerine, özel anahtarımızla da bağlanabiliriz. İlerleyen bölümlerde bunu nasıl yapacağımızı göreceğiz. Ama şimdilik anahtar yüklü bir sisteme bağlanırken kimlik doğrulama yöntemini nasıl seçeceğimizi görebiliriz.
Aşağıdaki yöntem, kimlik doğrulamada anahtarı gözardı edip, şifre girmeyi zorunlu hale getirmektedir.
Öte yandan, dökümanlarda yer almasa da, bir stackexchange kullanıcısının OpenSSH kodlarını incelerken dikkatini çeken "şifre sormayı zorlama" yöntemini sizinle paylaşmak istiyoruz:
Kaynak
Yukarıdaki yöntem, 2015 tarihinden itibaren çalışmamaya başlamış olsa da, bazı programlarda dokümante edilmemiş özelliklerin barınabileceğini göstermek için iyi bir örnek teşkil ediyor.
Aşağıdaki yöntemleyse, ayar dosyamızda belirilen ssh anahtarı dışında bir anahtarla bağlanabilmenin yolu görülmektedir.
Strict Host Key Checking
Eğer bir sunucuya ilk kez bağlanıyorsanız, genellikle aşağıdaki gibi bir soruyla karşılaşırsınız.
Burada ssh, bağlanacağınız sunucunun RSA parmak izine bakıp gerçekten doğru sunucu olup olmadığını bildiğinizi sorar. Tabii ki bu rakamları ezberlemenizin imkanı yoktur dolayısıyla ilk bağlandığınızda genellikle buna yes demek normaldir.
Ancak daha sonra bu soruyu sormaz, çünkü artık RSA parmak izini kenara not etmiştir SSH.
İlerleyen zamanlarda eğer yine bu sunucuya bağlanacak olursanız ve sunucunun RSA parmak izi değişmiş olursa farklı bir uyarı verir.
Bu noktada SSH kısaca "bağlanmaya çalıştığın sunucunun parmak izi daha önceden farklıydı. Bu şüpheli bir durum. Eğer yine de devam etmek istiyorsan benim kenara not ettiğim satırı sil lütfen" demektedir.
Hata mesajında parmak izini nereye not ettiği görülebilir: /home/eaydin/.ssh/known_hosts:1
yani bu dosyanın ilk satırı.
Bu satırı silersek, tekrar bize yes/no sorusunu soracaktır. Öte yandan tek seferlik bu kontrolü engellemek için aşağıdaki gibi bir bağlantı yapabilirdik.
Aslında yaptığımız /home/eaydin/.ssh/known_hosts
dosyasını yerine /dev/null
kullanmak oldu. Bu dosya da boş olunca, yine RSA parmak izini tanıyıp tanımadığımızı sordu. Eğer bu soruyu da sormamasını isteseydik,
Yukarıdaki mesajda her ne kadar "Permanently added" dese de, eklediği liste dosyası /dev/null
olduğu için, bu bilgi hiçbir yere kaydedilmemiş oldu.
known_hosts
dosyasına eklenen bir RSA parmak izini silmek için dosyayı düzenlemek yerine ssh-keygen
komutunun bir parametresini kullanabilirdik. Bu bizi hashlenmiş dosyada ilgili satırı bulma derdinden kurtarmaktadır. Yukarıdaki örnek için yapacak olursak:
İstemci Ayarları
Yukarıdaki örneklerde -o
parametresiyle bağlantı sırasında bazı seçenekleri açıp kapattık. Aslında burada yaptığımız, ssh istemcinin tanımlanmış ayarlarında bazılarını kullanmayıp o an belirttiklerimizi zorlamaktı.
Sözkonusu istemci ayarları sistem üzerinde /etc/ssh/ssh_config
yolunda yer alır.
Örneğin bu dosyada StrictHostKeyChecking no
yaptığımız takdirde yukarıdaki yes/no sorusuyla karşılaşmayız. (Tavsiye edilmez!) Benzer şekilde kullanılacak özel anahtarların yolu, şifre kullanımına izin verilmesi, port belirtilmediği takdirde hangi portun kullanılacağı (öntanımlı değer 22) gibi bir çok seçenek ayarlanabilir.
ssh_config hakkında yardım dosyalarını okumak için