giriiş
SSH protokolünü kullanmak, istemci-sunucu mimarisinde güvenli olmayan bir ağ üzerinden güvenli bir kanal oluşturarak bir SSH istemcisini bir SSH sunucusuna bağlar. Bir SSH anahtar kümesi oluşturmak size bir genel anahtar ve bir özel anahtar verir. Genel anahtarı bir sunucuya yerleştirebilir ve ardından ilgili özel anahtara sahip bir istemciyle ona bağlanabilirsiniz. SSH genel ve özel anahtarları eşleşirse, parola olmadan oturum açabilirsiniz.
Bu genellikle en güvenli ve rahat bağlantı yöntemidir.
Bu kılavuz, uzak sunuculara güvenli bağlantılar için yerel makinenizde SSH anahtarlarının nasıl yapılandırılacağını açıklamaktadır.
Ön koşullar
- OVHcloud kontrol paneline erişim
- OVHcloud hesabınızda özel bir sunucu veya VPS
- Bir SSH istemci programı (komut satırı veya GUI)
- Sunucunuza SSH üzerinden yönetimsel (sudo) erişim
Bu kılavuz, bağlantı için Uzak Masaüstü Protokolü'ne (RDP) güvenen standart Windows Server kurulumları için geçerli değildir. OVHcloud kurtarma modu için SSH bağlantıları kullanılır. Bu kılavuzun "Daha Fazla" bölümünde daha fazla bilgi bulabilirsiniz.
SSH anahtar çifti oluşturma
Aşağıdaki talimatlar SSH anahtarlarının kullanımına ilişkin iki yöntemi kapsamaktadır:
- Açık bir SSH anahtar çifti oluşturma ve SSH komut satırı istemcisinden sunucuya bağlanma
- PuTTY anahtar çifti oluşturma ve PuTTY SSH istemcisinden sunucuya bağlanma
Her iki yöntemi birlikte de kullanabilirsiniz, ancak PuTTY'nin anahtar dosyalarını belirli bir biçimde kaydettiğini ve bu nedenle Open SSH istemcisiyle oluşturulan SSH anahtar dosyalarıyla uyumsuz olduğunu unutmayın. Bu, SSH komut satırı istemcisiyle oluşturulan özel bir anahtarın önce PuTTY biçimine, tersinin de geçerli olduğu anlamına gelir.
Komut satırından bir SSH anahtar çifti oluşturma
Mac bilgisayarınızdan veya Linux işletim sistemi yüklü bir cihazdan komut satırı uygulamasını (Terminal) açın.
$HOME klasörünüzde .ssh adlı bir klasör olduğundan emin olun. Klasör yoksa, oluşturun:
mkdir ~/.ssh
Mevcut Windows işletim sisteminde, arama çubuğuna “cmd” yazarak Komut İstemi'ni açın (veya menüden PowerShell'i açın).
Etkin Windows kullanıcınızın .ssh dizinine gidin (varsayılan olarak: C:\Users\WindowsUsername\.ssh):
cd .ssh4096 bitlik bir RSA anahtarı oluşturmak için aşağıdaki komutu kullanın:
ssh-keygen -b 4096
Bu komutla -t seçeneğini kullanmak farklı bir şifreleme yöntemi belirtmenize olanak tanır, örneğin:
ssh-keygen -t ed25519 -a 256
Komut satırı sizden yeni oluşturulan anahtarı standart dosyaya kaydetmenizi isteyecektir:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):Önerilen dosya adını kabul etmek için Enter tuşuna basabilir veya ayrı bir ad girebilirsiniz. Bu, .ssh dizinine birden fazla anahtar çifti yerleştirildiğinde geçerlidir. Bu konu hakkında daha fazla bilgiyi "Birden Fazla SSH Anahtarını Yönetme" bölümünde bulabilirsiniz.
Bu örnekte id_rsa ve id_rsa.pub standart dosya adları kullanılmıştır.
Bir sonraki komutta, SSH anahtarınızı bir parola ile koruyabilirsiniz. Bu, ek güvenlik için önerilir.
Sunucunuza uzaktan erişim, yalnızca özel anahtarı depolayan istemci cihazı kadar güvenlidir. Bu nedenle, SSH anahtarlarını kullanırken cihazınızı ve dosyalarınızı yetkisiz erişime karşı korumak çok önemlidir.
Kolaylık ve güvenlik amacıyla cihazınızda açık kaynaklı çözüm olan KeePass gibi bir parola yöneticisi kullanın.
Tüm SSH anahtarları .ssh klasöründe saklanmalıdır. Ortak anahtar dosyalarının dosya adında .pub uzantısı bulunur.
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:MRk+Y0zCOoOkferhkTvMpcMsYspj212lK7sEauNap user@hostname
The key's randomart image is:
+---[RSA 4096]----+
| .. o |
| . .= o |
| o o X |
|. . . . |
|. .=.o .S. |
| =o.o. . . |
|o + . . o .. |
|.. . . oEoo . |
|o. .o+oo |
+----[SHA256]-----+Genel anahtarınızı görüntülemek ve dışa aktarmak için pub.key dosyanızda cat komutunu kullanın. Anahtar dizesinin tamamını panoya kopyalayın ve daha sonra sunucunuza ekleyin.
cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8teh2NJ42qYZV98gTNhumO1b6rMYIkAfRVazl
k6dSS3xf2MXJ4YHsDacdjtJ+evXCFBy/IWgdkFtcvsGAMZ2N1RdvhDyQYcy6NDaJCBYw1K6Gv5fJ
SHCiFXvMF0MRRUSMneYlidxUJg9eDvdygny4xOdC6c1JrPrSgOc2nQuKeMpOoOWLINIswg1IIFVk
kFMPrFivP8Z6tidzVpAtbr1sXmJGZazYWrU3FoK2a1sF1zEWrmlMOzX81zEWrmlMOzX8CpZW8Rae
i4ANmLy7NULWK36yU0Rp9bFJ4o0/4PTkZiDCsK0QyHhAJXdLN7ZHpfJtHIPCnexmwIMLfIhCWhO5
user@hostnameMacOS Terminal'de, anahtar dizelerini daha hızlı yönetmek için pbcopy ve pbpaste komutlarını kullanabilirsiniz. Örneğin, anahtarı id_rsa.pub dosyasından panoya kopyalamak için şu komutu kullanın:
pbcopy < ~/.ssh/id_rsa.pub
Windows'ta dosyayı Dosya Gezgini'nden Not Defteri ile açabilirsiniz (dosyaya sağ tıklayın ve Birlikte Aç'ı seçin) veya aşağıdaki komutlardan birini kullanabilirsiniz (\Users\WindowsUsername\.ssh dizininde):
komut
more id_rsa.pub
Powershell
cat id_rsa.pub
Daha sonra sunucunuza eklemek için tam anahtar dizesini panoya kopyalayın.
Panoyu kullanma
Windows komut isteminden çalışırken, panonuzun içeriğini komut istemi penceresine yapıştırmak için sağ tıklayın. Komut istemi penceresinden bir dizeyi kopyalamak için, dizeyi seçin ve Enter tuşuna basın. Bu işlevlere menü çubuğuna sağ tıklayarak da ulaşabilirsiniz.
PuTTY ile bir SSH anahtar çifti oluşturma
PuTTY, Windows ve diğer işletim sistemleri için kullanılabilen, grafiksel kullanıcı arayüzüne sahip açık kaynaklı bir SSH istemci yazılımıdır. SSH anahtarları oluşturmak için PuTTY Anahtar Üretici (PuTTYgen) adlı bir yardımcı yazılım da sunar.
PuTTY'nin temel amacı, bir Windows istemci makinesinden bir GNU/Linux sunucusuna SSH bağlantılarını yönetmektir. PuTTY, anahtar dosyalarını, çoğu modern işletim sisteminde yerel olarak bulunan Open SSH istemcisiyle oluşturulan SSH anahtar dosyalarıyla uyumsuz hale getiren belirli bir biçimde depolar.
Gerekirse, yukarıda açıklandığı gibi komut satırından oluşturulan anahtarlar, PuTTY istemcisinde kullanılmak üzere PPK formatına dönüştürülebilir. SSH anahtarlarının en rahat kullanımı için, bir seçeneği belirleyin ve ona bağlı kalın (SSH özel anahtarları veya PuTTY özel anahtarları).
Henüz kurulu değilse (program listenizi kontrol edin veya arama işlevini kullanın), PuTTY'yi resmi web sitesinden indirin. Önerilen standart kurulum paketi PuTTYgen'i içerir, ancak web sitesinde bağımsız bir dosya olarak da mevcuttur.
PuTTYgen'i açın ve desteklenen bir şifreleme algoritması seçin. Bu örnekte RSA kullanılmıştır. Sağ alt köşeye bit sayısı olarak 4096 girin ve ardından Oluştur düğmesine tıklayın.
Fare işaretçinizi ilerleme çubuğunun altındaki alanda serbestçe hareket ettirin:
İlerleme çubuğu dolduğunda anahtar hazır demektir.
Sunucunuza eklemek için tam anahtar dizesini panoya kopyalayın. Her iki anahtarı da ilgili düğmelere tıklayarak dosya olarak kaydedin ve korumak için bir parola girin.
Sunucunuza uzaktan erişim, yalnızca özel anahtarı depolayan istemci cihazı kadar güvenlidir. Bu nedenle, SSH anahtarlarını kullanırken cihazınızı ve dosyalarınızı yetkisiz erişime karşı korumak çok önemlidir.
Kolaylık ve güvenlik amacıyla cihazınızda açık kaynaklı çözüm olan KeePass gibi bir parola yöneticisi kullanın.
PuTTY kullanmanın avantajlarından biri, birden fazla bağlantıyı Oturum olarak kaydedebilme özelliğidir. Daha fazla bilgiyi aşağıdaki "Yerel Makinenizde Birden Fazla SSH Anahtarını Yönetme" bölümünde bulabilirsiniz.
SSH bağlantıları hakkında daha fazla bilgiyi Başlarken kılavuzlarımızda ve SSH Girişimizde bulabilirsiniz.
Sunucunuza SSH anahtarları ekleme
GNU/Linux, macOS veya BSD tabanlı sistemlerde oluşturulan genel anahtarların aktarılması
SSH anahtar çiftlerinizi GNU/Linux, macOS veya BSD tabanlı bir sistemde oluşturduysanız, genel anahtarları sunucunuza eklemek için ssh-copy-id komutunu kullanabilirsiniz.
ssh-copy-id aracı, genel anahtarları belirtilen uzak sunucudaki ~/.ssh/authorized_keys dosyasına kopyalar ve gerekirse dosyayı bu dizinde otomatik olarak oluşturur.
ssh-copy-id user@IP_ADDRESSVarsayılan olarak, ssh-copy-id tüm genel anahtarları yerel kullanıcınızın ~/.ssh dizinine taşımaya çalışır. Genel anahtar eklemek için, bu anahtar dosyasını -i seçeneğiyle ve ardından dosyanın yolunu belirtebilirsiniz:
ssh-copy-id -i ~/.ssh/KeyFileName user@IP_ADDRESS
Örnek:
ssh-copy-id -i ~/.ssh/VPS_rsa.pub [email protected]
Kullanıcı şifresi istenecektir. İşlem başarılı olursa, aşağıdaki görsele benzer bir mesaj alacaksınız.
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'user@server-ip'"
and check to make sure that only the key(s) you wanted were added.Bunun yerine bir hata mesajı alırsanız, aşağıda açıklanan adımları izleyerek açık anahtarlarınızı her zaman manuel olarak ekleyebilirsiniz.
En iyi uygulama ve güvenlik nedenleriyle, aynı anahtar çifti birden fazla kullanıcı tarafından kullanılmamalıdır. GNU/Linux sistemlerindeki her kullanıcının ~/.ssh/ dizininde kendi authorized_keys dosyası olduğundan, yukarıda gösterildiği gibi ssh-copy-id komutunu kullanabilir ve anahtar çiftini oluşturduktan sonra KeyFileName ile kullanıcıyı eşleştirebilirsiniz.
Sunucuya ortak anahtarların manuel olarak eklenmesi
Sunucunuza bağlanın ve kullanıcınızın $HOME dizininde olduğunuzdan emin olun. .ssh klasörünü oluşturun (eğer yoksa):
mkdir ~/.ssh
Mevcut kullanıcı için anahtarı saklamak için, authorized_keys dosyasını favori metin düzenleyicinizle açın (veya oluşturun) (bu örnekte nano kullanılmıştır):
nano ~/.ssh/authorized_keys
Açık anahtarınızı bu dosyaya yerleştirin. Dosyayı kaydedin ve düzenleyiciden çıkın. Sunucunuzu yeniden başlatın (sudo reboot) veya aşağıdaki komutlardan biriyle OpenSSH hizmetini yeniden başlatın (uygun komut işletim sisteminize bağlı olarak değişebilir):
sudo systemctl restart ssh
sudo systemctl restart sshd
Anahtarınızın doğru şekilde ayarlandığından emin olmak için aşağıdaki komutla sunucunuza bağlanın. "user" yerine anahtarların oluşturulduğu kullanıcı adını ve "IP_ADDRESS" yerine erişmek istediğiniz sunucunun IP adresini (veya ana bilgisayar adını) yazın:
ssh user@IP_ADDRESS
Örnek:
Sunucunuza ek genel anahtarlar ekleme
Sunucunuza erişebilecek diğer kullanıcılar için SSH anahtarları eklemek için anahtar oluşturma adımlarını tekrarlayın, ancak SSH anahtarlarını oluşturmak ve depolamak (veya bu kişinin ayrılmış makinesinde komutları çalıştırmak) için uygun $HOME klasörünü veya amaçlanan kullanıcının Windows Kullanıcıları dizinini kullanın. Daha sonra, yukarıda yetkili_anahtarlar bölümünde açıklandığı gibi yeni genel anahtarı sunucuya ekleyin.
Sunucunuzdan genel anahtarları kaldırma
Yukarıda açıklandığı gibi authorized_keys dosyasını açın ve erişimi iptal edilen kullanıcıya ait anahtar dizesini silin.
Dosyayı kaydedin ve düzenleyiciden çıkın.
Yerel makinenizde birden fazla SSH anahtarını yönetin
Farklı uzak sunuculara bağlanmak için birden fazla SSH anahtar çifti kullanmak isteyebilirsiniz. (PuTTY kullanıyorsanız, aşağıdaki ilgili bölüme geçin.)
Tüm anahtarların yerel makinenizdeki .ssh klasörüne yerleştirilmesi gerektiğinden, dosya adları farklı olmalıdır. Yeni bir anahtar çifti oluşturduğunuzda ve bir dosya adı girmeniz istendiğinde, istediğiniz bir adı girin. Örneğin, sunucu adınızla eşleştirin.
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): KeyFileName_rsa
Your identification has been saved in /home/user/.ssh/KeyFileName_rsa.
Your public key has been saved in /home/user/.ssh/KeyFileName_rsa.pub.İlgili sunucuya bağlanırken kullanıcı ve sunucu bilgilerinin yanı sıra anahtar dosyasının adını da belirtin:
ssh -i ~/.ssh/KeyFileName user@IP_ADDRESS
Örnek:
ssh -i ~/.ssh/myVPS_rsa [email protected]
Önceki bölümlerde belirtildiği gibi, aynı talimatlar Windows istemcisinde de geçerlidir. ~/ dizinini, varsayılan olarak C:\Users\WindowsUsername\ olan Windows kullanıcı klasörünüzün yoluyla değiştirin. (Örnek: ssh -i C:\Users\Username\.ssh/myVPS_rsa [email protected])
“config” dosyasını kullanarak.
~/.ssh klasöründeki (\Users\Username\.ssh Windows için) config adlı bir dosyayı her düzenlediğinizde -i seçeneğini eklemek yerine bir alternatif. Bunu, farklı bağlantılar için ayrıntıları (kullanıcı adı, bağlantı noktası, anahtar dosyası, isteğe bağlı parametreler vb.) yapılandırmak için kullanabilirsiniz.
Bu dosya .ssh içinde mevcutsa, muhtemelen zaten bilgi içeriyor demektir. Ortamınıza bağlı olarak, önce orijinalinin bir yedeğini oluşturun.
.ssh klasörünün içeriğine bir örnek:
ls ~/.ssh/
config id_rsa id_rsa.pub known_hosts known_hosts.old
Yapılandırma dosyasıyla, standart değerlere ek olarak birden fazla SSH bağlantısı, her bir bağlantının ayrı parametreleriyle birlikte saklanabilir. Bu dosyanın tüm potansiyelini kullanmak zor olabilir, çünkü düzenli olarak birden fazla sunucuyu yöneten deneyimli kullanıcılar için oldukça faydalıdır.
Aşağıda bir VPS'e SSH bağlantısının nasıl yapılandırılacağını açıklayan basit bir örnek bulunmaktadır.
Dosyayı açın ve en üste şu satırları ekleyin:
Host vps
HostName 203.0.113.100
IdentityFile ~/.ssh/myVPS_rsaDaha sonra Host olarak tanımladığınız takma adla VPS'e bağlanabilirsiniz:
ssh ubuntu@vps
Önceki örnekte yalnızca sunucu IP'si ve anahtar dosyası belirtilmişti, ancak daha fazla ayrıntı eklenebilir. "rocky" kullanıcı adı, değiştirilen "49160" SSH portu ve "myserver_rsa" dosyasındaki özel anahtarla ikinci sunucuya bir SSH bağlantısı yapılandırmak için, dosyanın içeriğini bu örnekte gösterildiği gibi genişletin:
Host vps
HostName 203.0.113.100
IdentityFile ~/.ssh/myVPS_rsa
Host dedicated_server
HostName 203.0.113.101
User rocky
Port 49160
IdentityFile ~/.ssh/myserver_rsaDaha sonra aşağıdakini girerek bu sunucuya bağlanabilirsiniz:
ssh dedicated_serverDaha detaylı bilgi için ilgili man sayfasını okuyabilirsiniz.
PuTTY Kullanımı
PuTTY ile SSH anahtar çifti oluşturma ve sunucunuza SSH anahtarları ekleme bölümündeki talimatları izlediyseniz, sunucunuza bağlanmak için kullanabileceğiniz bir anahtar çiftine sahip olursunuz.
PuTTY, bir SSH bağlantısının kimlik bilgilerini ve parametrelerini Oturum olarak saklayabilir. Bu sayede farklı sunuculara ayrı anahtarlar kullanarak bağlanabilirsiniz.
PuTTY'yi açın ve sol menüde SSH alt bölümünü genişletin, ardından Kimlik Bilgileri ve Yetkilendirme'ye tıklayın.
Gözat düğmesine tıklayın ve kaydettiğiniz klasörden PuTTY özel anahtar dosyasını (keyfile.ppk) seçin.
Anahtar dosyası artık geçerli SSH oturumuyla ilişkilendirilmiştir. Sol menüdeki Oturum'a gidin ve sunucu için oturum açma bilgilerinizi (kullanıcı adı@IPv4_adresi) girin.
Kaydedilen Oturumlar alanına bu bağlantı için bir ad girin ve listeye eklemek için Kaydet'e tıklayın.
Artık bu Oturum öğesine tıklayıp sunucunuza bir bağlantı açabilirsiniz. Test etmek için Aç'a tıklayın. Anahtar dosyasını bir parola ile koruduysanız, bu aşamada parolayı girmeniz gerekecektir.
Başka bir sunucu bağlantısı yapılandırmak için aşağıdaki adımları tekrarlayın:
- Anahtar çiftini oluşturun.
- Genel anahtarı sunucunuza ekleyin.
- Sunucu ayrıntılarını girin ve anahtar dosyasını PuTTY'ye ekleyin.














