
SSH Anahtar Çifti Oluşturma ve Kullanımı
SSH (Secure Shell), lokal ya da global ağ (güvensiz kanal) üzerinde bulunan bir sunucuya erişim sağlamaya ve uzak sunucu üzerinde komut çalıştırma gibi işlemleri gerçekleştirmeye olanak sağlayan bir uzak sunucu bağlantı protokolüdür (güvenli kanal).
Linux (VPS-VDS) ve macOS işletim sistemlerinde SSH için varsayılan olarak OpenSSH programı kurulu olarak bulunuyor.
Komut satırından ssh ile bir sunucuya bağlanmak ssh kullaniciadi@host
yazmak yeterlidir. İlk bağlantıda IP adresine bağlı olarak ECDSA anahtarı ~/.ssh/known_hosts kaydı yapılır ve bir defaya mahsus bağlantı onayı alınır.
SSH Anahtarlı Kimlik Doğrulama
VPS-VDS sistem kurulumunda herhangi bir SSH anahtarı kullanmadıysanız kullanıcı girişi paralo ile gerçekleşecek. Daha güvenli bağlantı için SSH anahtarı kullanmak önerilir.
SSH anahtarı ile bağlanma için istemci bilgisayarımızda anahtar eşleri (public/private) oluşturmamız oluşturacağız. Bunun için terminalde ssh-keygen -t rsa
komutunu kullanacağız.

~/.ssh/ dizinimiz altında id_rsa (gizli anahtar, kimseye verilmeyecek) ve id_rsa.pub (açık anahtar) olarak iki dosyamız olacak. VPS kurulumunun ilk aşamasında açık anahtarı (id_rsa.pub) belirterek anahtarla girişi de aktif edebiliriz. Açık anahtarı görüntülemek için cat ~/.ssh/id_rsa.pub
komutunu kullanabiliriz. Oluşturduğumuz bu anahtar çiftini istersek başka bilgisayarlarda da kullanabiliriz.

VPS kurulum aşamasında aşağıdaki gibi varsa açık anahtarımızı yazarak SSH ile bağlantıyı etkinleştirebiliriz.

Eğer kurulumda açık anahtarımızı kullanmadıysak sonradan eklemek için istemcide aşağıdaki komutu kullanabiliriz.
cat ~/.ssh/id_rsa.pub | ssh hasan@104.248.91.14 "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"
Komutu çalıştırmak için parola kullandıktan sonra diğer girişlerimiz SSH key ile olacaktır. Ancak "-o PubkeyAuthentication=no" parametresi ile giriş paralo kullanarak giriş yapabiliriz. Parola kullanımını tamamen kapatmak için /etc/ssh/sshd_config dosyasında "PasswordAuthentication" parametresini "no" olarak ayarlamalıyız. Yaptığımız her değişikliği uygulamak service ssh restart
komutunu kullanmamız gerekiyor.
nano /etc/ssh/sshd_config

SSH yapılandırma dosyaları gerek Linux gerek macOS dağıtımlarında /etc/ssh/ dizin altında bulunuyor.
Sunucuya bağlantı için /etc/ssh/sshd_config dosyasında birkaç ayar yapmak gerekebiliyor. Örneğin VirtualBox ile oluşturduğumuz sanal sunucuya (Debian) uzaktan bağlanmak için Debian "PermitRootLogin prohibit-password" parametresini "PermitRootLogin yes" şeklinde değiştirmek gerekiyor.
sshd_config sunucu, ssh_config ise istemci olarak gerekli ayarlar bulunuyor. Buradaki ayarlar tüm kullanıcıları etkilemektedir. İstemci olarak yalnızca ilgili kullanıcı için ~/.ssh/config dosyası oluşturabilirsiniz.
Örnek ~/.ssh/config dosyası
Host enterprise
HostName 192.168.0.100
Port 2233
User root
IdentityFile ~/.ssh-enterprise/id_rsaHost 192.168.0.101
IdentityFile ~/.ssh-voyager/id_rsa
ssh enterprise
ya da ssh hasan@enterprise
diyerek tanımladığımız parametrelerle giriş yapabiliriz. IdentityFile parametresi ile farklı anahtar kullanabiliriz.