Windows'a Uzak Masaüstü Bağlantısı'nı güvenli bir şekilde kullanmak için SSH kullanma
Çalışma ortamı
- Windows'a uzaktan bağlantı
-
- pencereler 11
- Windows'tan uzak bağlantı
-
- pencereler 10
- OpenSSH
-
- OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
Önkoşullar
- Windows'a uzaktan bağlantı
-
- Windows 10 veya üzeri (Pro veya başka bir sürüm gereklidir). Ancak, OpenSSH ayrı olarak hazırlanabiliyorsa bu geçerli değildir.
- Windows Server 2019 veya üzeri. Ancak, OpenSSH ayrı olarak hazırlanabiliyorsa bu geçerli değildir.
- Windows'tan uzak bağlantı
-
- Windows (çoğu sürüm mümkündür)
- Windows Server (çoğu sürüm mümkündür)
İlk başta
İnternette bulutta veya VPS'de bir Windows ortamı oluşturduktan sonra, uzak Windows hedefini çalıştırmak için genellikle bir uzak masaüstü bağlantısı kullanırsınız.
Uzak masaüstü bağlantısında iletişim içeriği şifrelenir ve kullanıcı adı ve şifre sızdırılmazsa diğerleri izinsiz giriş yapmaz. İnsanların her yerden giriş yapmaya çalışacakları endişesi her zaman vardır.
Bazı büyük bulutların sanal makinelerden ayrı güvenlik duvarları vardır ve bağlantı kaynağını kısıtlamak için bir işlev vardır. Bu özellikler tüm hizmetlerde kullanılamayabilir. Özellikle düşük bir bütçeyle inşa edilen ortamlarda, bu tür işlevlerin bulunmadığı birçok durum vardır.
Bu nedenle, bu sefer SSH fonksiyonunu ekleyerek bağlantı kaynağını mümkün olduğunca sınırlamak istiyorum. Özel anahtar ve açık anahtar kullanıldığından, özel anahtar sızdırılmadığı sürece, başka bir ortamdan uzaktan oturum açma olasılığı mümkün olduğunca en aza indirilebilir.
Bu durumda, SSH ortamını oluşturmak için OpenSSH kullanacağız.
Uzak hedef Windows ortamı oluşturma
İnternet üzerinden uzaktan bağlanmanıza olanak tanıyan bir Windows ortamı oluşturun. İnternet üzerinden gittiği sürece nerede oluşturulduğu önemli değildir, ancak bu doğrulama için Microsoft Azure'da sanal bir makine olarak oluşturulacaktır. Azure'da derleme adımları bu ipucuyla ilgili değil, bu yüzden bunları atlayacağım. Bu sefer port 22 kullanılacağı için Azure kullanıyorsanız port 22 iletişiminin Azure'daki sanal makinenin ayarlarından geçtiğinden emin olun.
Azure dışında bir ortamda oluşturuyorsanız, ortamınız için Windows'a uzak masaüstü bağlantısı kurabileceğiniz bir konumda olduğunuzdan emin olun.
Ayrıca, Windows sürümü Windows 10 veya üzerini ya da Windows Server 2019 veya üzerini hedefleyerek OpenSSH ortamı oluşturmayı kolaylaştırır. Daha önceki bir ortamda uygulanabilir, ancak OpenSSH'yi ayrı olarak indirip kurmanız gerektiğinden biraz daha fazla zaman ve çaba gerektirir.
Bu durumda, prosedür SFTP ile aynıdır, bu nedenle lütfen aşağıdaki ipuçlarına bakın.
OpenSSH'yi ayarlama
Buradan, uzak Windows ortamında çalışacağız. İlk olarak, uzak masaüstü bağlantısıyla uzak hedefe bağlanın. Bulutunuz veya VPS'niz bir konsol sağlıyorsa, onu kullanabilirsiniz. Bu sefer Windows 11 ortamında çalıştığımız için diğer sürümlerde adımlar biraz farklı olabilir.
Başlat menüsünü açın ve Ayarlar'ı seçin.
Bir uygulama seçin.
İsteğe Bağlı Özellikler'i seçin.
Özellikleri Göster'i seçin.
Listede biraz daha aşağıda "OpenSSH Sunucusu" var, bu yüzden kontrol edin ve "İleri" ye tıklayın.
Install (Yükle) seçeneğine tıklayın.
Kurulum tamamlandığında ve aşağıdaki listeye "OpenSSH Server" eklendiğinde işleminiz tamamlanmış olur.
OpenSSH için hizmet yapılandırması
Başlat menüsüne sağ tıklayın ve Bilgisayar Yönetimi'ni seçin.
Soldaki listeden Hizmetler'i seçin.
Ortadaki listede "OpenSSH SSH Sunucusu" nu bulun, sağ tıklayın ve "Özellikler" i seçin.
Uzaktan bağlanırken, OpenSSH sunucusunun çalışıyor olmasını istiyoruz, bu nedenle "Başlangıç türü"nü "Otomatik" olarak ayarlayın.
Şu anda çalışmadığı için, ayarlamak da dahil olmak üzere buradan başlatacağım.
Başlatıldığında, tıklayın tamam kapatmak için düğmesine basın. Listede çalışıyor olmalıdır.
OpenSSH'yi Yapılandırma
İlk durumda, özel anahtarla kimlik doğrulaması devre dışı bırakılır, bu nedenle ayarlayın. Explorer'da aşağıdaki klasörü açın.
- C:\ProgramVeri\ssh
Ancak, yukarıdaki klasör gizli bir klasör olabilir, bu nedenle lütfen Explorer seçeneklerini ayarlayarak görünür hale getirin.
Klasörde sshd_config
adı verilen bir dosya var, bu yüzden Not Defteri gibi bir metin düzenleyiciyle açın.
Bu sefer değişiklik yapacağımız için, lütfen değişiklikten önce yedek olarak sshd_config_old
kopyalayın ve çoğaltın.
PubkeyAuthentication yes
Aramak:
Bu öğe, gizli anahtar kimlik doğrulamasının etkinleştirilip etkinleştirilmeyeceğine ilişkin bir ayardır.
Varsayılan olarak, devre dışıdır ve diyor ki, ancak yorum yapıldı, yes
bu yüzden yorumu kaldırın.
Değişiklikten önce
#PubkeyAuthentication yes
Değişiklikten sonra
PubkeyAuthentication yes
PasswordAuthentication yes
Aramak:
Bu öğe, parola kimlik doğrulamasının etkinleştirilip etkinleştirilmeyeceğine ilişkin bir ayardır.
Varsayılan olarak etkindir ve özel anahtar kimlik doğrulamasını etkinleştirseniz bile, etkin kalırsa güvenlik açısından anlamsızdır, bu nedenle açıklamasını kaldırın ve no
ayarlayın .
Değişiklikten önce
#PasswordAuthentication yes
Değişiklikten sonra
PasswordAuthentication no
Sonlara doğru aşağıdaki satırı yorumlayın: Bu, yöneticiler grubu için temel ayardır ve bu durumda kullanıcı başına oturum açmayı destekleyeceğimiz için bunu devre dışı bırakacağız.
Değişiklikten önce
Match Group administrators
AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
Değişiklikten sonra
#Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
Değişiklikten sonra dosyayı kaydettikten sonra OpenSSH SSH Server
, ayarları yansıtmak için hizmeti yeniden başlatın.
Bağlantı noktasını değiştirmek istiyorsanız
SSH bağlantı noktasını değiştirmek istiyorsanız, aşağıdakileri değiştirin.
Değişiklikten önce
#Port 22
Değişiklikten sonra
#Port <任意の番号>
Bağlantı noktası numarasını değiştirerek, varsayılan bağlantı noktasına saldırılmayacak ve bu da daha güçlü güvenliğe yol açacaktır. Öte yandan, operasyonun karmaşıklığını arttırır, bu yüzden dikkatli olmanız gerekir.
Bağlantı noktası numarasını değiştirirseniz, bağlanırken 22 dışında bir bağlantı noktası belirtmeniz gerekir.
Özel ve Genel Anahtarlar Oluşturma
Bu bir istemci tarafı görevidir. Ancak, nerede çalıştığınız gerçekten önemli değil. Ancak, oluşturduğunuz özel anahtarı sızdırmamaya dikkat edin.
Windows 10 veya üzerine, Windows Server 2019 veya üzerine, OpenSSH istemcisi varsayılan olarak yüklenir, böylece bir komutla kolayca oluşturabilirsiniz. Diğer ortamlarda, ayrı bir OpenSSH istemcisi yüklemeniz veya ayrı bir araç kullanmanız gerekir.
Aşağıdaki ipuçları SFTP içindir, ancak bir OpenSSH istemcisi kurmak için lütfen bunlara bakın.
İstemci ortamında bir komut istemi, PowerShell, terminal veya komutları yürütebilen herhangi bir araç başlatın.
Bir dosya oluşturacağınız için, bir komutla herhangi bir dizine gidin cd
.
Aşağıdaki komutu çalıştırın:
ssh-keygen -t rsa -f id_rsa
Anahtar için bir parola (şifre) belirleyebilirsiniz, bu nedenle lütfen gerekirse girin. Bir parola belirlerseniz, güvenlik artırılır, ancak sonraki süreçte parolayı girmek için harcanan zaman ve çaba artar.
Bir genel anahtar (id_rsa.pub) ve bir özel anahtar (id_rsa) oluşturuldu.
Ortak anahtar (id_rsa.pub) daha sonra uzak hedefe yerleştirilecektir. Özel anahtar uzak istemcide herhangi bir yerde bulunabilir, ancak yalnızca güvenlik amacıyla kullanılan hesap tarafından erişilebilen bir klasörde bulunmalıdır. Temel olarak, istemci tarafında aşağıdaki klasöre yerleştirirseniz sorun olmadığını düşünüyorum. OpenSSH istemcisini kullanıyorsanız, varsayılan olarak bu klasöre göz atar.
C:\Users\<ユーザー名>\.ssh
Yukarıdaki klasörü Explorer'da oluşturamıyorsanız, aşağıdaki komutla oluşturabilirsiniz.
cd C:\Users\<ユーザー名>
mkdir .ssh
Açık anahtarların yerleştirilmesi
Bu uzaktan bir işlemdir.
Oluşturulan ortak anahtarı (id_rsa.pub) uzak hedefe yerleştirin.
Bu dosyayı aşağıdaki klasöre taşıyın: <ユーザー名>
, gerçekten uzaktan bağlandığınızda oturum açacağınız kullanıcı hesabının adıdır.
C:\Users\<ユーザー名>\.ssh
Klasörünüz yoksa ve Explorer'da klasör oluşturamıyorsanız, aşağıdaki komutla bir klasör oluşturabilirsiniz.
cd C:\Users\<ユーザー名>
mkdir .ssh
Dağıtılan ortak anahtar dosyasını authorized_keys
olarak değiştirin. Bu kadar.
Ortamınıza bağlı olarak, dosyaya zaten authorized_keys
sahip olabilirsiniz. Başka amaçlar için bir SSH bağlantısı kurduysanız bu durum söz konusu olabilir.
Bu durumda authorized_keys
, dosyayı ve dosyayı Not Defteri vb. ile açarak ve id_rsa.pub
id_rsa.pub'ın içeriğini authorized_keys bir sonraki satırında listeleyerek dosyayı kaydettiniz demektir.
authorized_keys'de birden fazla ortak anahtar kaydedebilirsiniz.
SSH ile bağlantı kurun
OpenSSH komutuyla bağlanırken
SSH ile bağlantı kurmanın çeşitli yolları vardır, ancak komut tabanlı bir bağlantıyla başlayalım. Aslında, en az sayıda adımla bağlantı komutla yapılır. Önkoşul olarak, OpenSSH istemcisinin kurulu olması gerekir.
Seçtiğiniz komut aracını başlatın (Komut İstemi, PowerShell, Terminal).
Aşağıdaki komutu girin:
Komut Biçimi
ssh -i <秘密鍵ファイルパス> -L <ローカルの空いているポート>:127.0.0.1:3389 <接続先のユーザーアカウント名>@<接続先サーバーIPアドレス、またはホスト名>
Aşağıda parametrelerin bir açıklaması yer almaktadır. Ortamınıza göre ayarlayın.
Değişken Parametre Adı | Açıklama | |
---|---|---|
ssh (İngilizce) | SSH'yi OpenSSH ile kullanma bildirimi. | |
-ben | Özel anahtar dosyası kullanma bildirimi. | |
< özel anahtar dosyası yolu> | ● | Oluşturduğunuz özel anahtar dosyasının konumunu açıklayın. C:\Users\<ユーザー名>\.ssh Yol isteğe bağlıdır. Aksi takdirde, mutlak veya göreli bir yol gereklidir. |
-L | Bu bildirim, uzak bir hedefe bağlanırken yerel olarak ve uzaktan kullanılacak bağlantı noktasını belirtir. | |
< yerel ücretsiz bağlantı noktası> | ● | Uzak Masaüstü Bağlantısı genellikle 3389 numaralı bağlantı noktasını kullanır, ancak herhangi bir bağlantı noktasını kullanarak da bağlanabilirsiniz. Ücretsiz olduğu sürece hangi numara olduğu önemli değil. |
127.0.0.1 | Bu, uzak hedefin nereden bağlandığını tanıyan ana bilgisayar IP adresidir. Temel olarak, 127.0.0.1 iyidir. | |
3389 | Uzak hedefte kullanılacak bağlantı noktası numarası. Uzak hedef genellikle 3389 numaralı bağlantı noktasıyla uzak masaüstü bağlantısıyla bağlanır, böylece olduğu gibi bırakılabilir. | |
< bağlanmak istediğiniz kullanıcı hesabının adı> | ● | Uzak hedefte hangi hesaba bağlanmak istediğinizi belirtin. |
< Bağlanılacak sunucunun IP adresi veya ana bilgisayar adı> | ● | Uzak hedef sunucuyu belirtir. |
Örnek Giriş
ssh -i id_rsa -L 13389:127.0.0.1:3389 TestUser@52.140.221.194
İlk kez bir anahtar girmeniz istenecektir, bu nedenle yes
yazın ve Enter tuşuna basın.
Özel anahtarınız için ayarlanmış bir parolanız varsa, bunu girmeniz gerekir.
Aşağıdakiler bağlı durumda olacaktır. İstemcinin değil, sunucu tarafındaki kullanıcının görüntülendiğini görebilirsiniz. Bu pencere görüntülenirken bağlıdır, bu yüzden lütfen kapatmayın. Kapatırsanız, bağlantı kopacaktır.
PuTTY ile bağlanırken
Burada PuTTY adında bir araç ile SSH'e bağlanmaya çalışacağız.
Özel anahtarın dönüştürülmesi
İlk olarak, PuTTY kullanıyorsanız, özel anahtarı dönüştürmeniz gerekecektir. Ekteki araçta "puttygen .exe" olduğunu düşünüyorum, bu yüzden lütfen başlatın.
Menüden "Dönüşümler -> İçe Aktarma Anahtarı"nı seçin.
Oluşturduğunuz özel anahtarı, bu durumda "id_rsa" seçin.
Bir parola belirlediyseniz, bu parolayı girin.
Menüden "Dosya -> Özel anahtarı kaydet"i seçin.
「. .ppk" dosyasını açın.
Oluşturulduktan sonra işiniz bitti.
PuTTY'yi Yapılandırma
Macunu başlatın.exe.
Bağlanmak istediğiniz ortamın IP adresini girin. Bir alan adınız varsa, bir alan adı ile bağlanabilirsiniz.
Soldaki menüden Bağlantı -> Veri'yi seçin. Otomatik oturum açma kullanıcı adı alanına, bağlanmak istediğiniz ortamın hesap adını girin.
Soldaki menüden Connection -> SSH -> Tunnels'ı seçin. Her birini aşağıdaki giriş alanına girin ve "Ekle" düğmesini tıklayın.
Parametre Adı Değer | Açıklamaları | |
---|---|---|
Kaynak bağlantı noktası | 13389 | Herhangi bir boş bağlantı noktası yapacak. Daha sonra kullanacağım |
Hedef | 127.0.0.1:3389 |
Eklendiğinde, şöyle görünmelidir:
Ardından, soldaki menüden "Connection -> SSH -> Auth -> Cledentioals" seçeneğini seçin ve "Kimlik doğrulama için özel anahtar dosyası" için Gözat düğmesine tıklayın.
Kaydettiğiniz özel anahtarı seçin.
Soldaki menüden "Oturum"u seçin, Oturumları Kaydet için istediğiniz bir adı girin ve Kaydet düğmesini tıklayın. Bir dahaki sefere bu ayarı yüklerseniz sorun olmaz.
Kaydetmeyi onayladıktan sonra, "Aç" düğmesini tıklayın.
İlk kez bağlanırken aşağıdaki ekran görüntülenecektir. Kabul Et düğmesini tıklayın.
Komut istemine benzeyen bir ekran göreceksiniz. Özel anahtar için bir parolanız varsa, onu girin.
Ekran içeriği aşağıda gösterildiği gibi değişirse, bağlanacaktır. İstemcinin değil, sunucu tarafındaki kullanıcının görüntülendiğini görebilirsiniz. Bu pencere görüntülenirken bağlıdır, bu yüzden lütfen kapatmayın. Kapatırsanız, bağlantı kopacaktır.
SSH ile uzak masaüstü bağlantısı kurun
Şimdi SSH ile bağlıyken uzak masaüstü bağlantısı yapalım.
Bağlanırken, bilgisayar kısmı gerçek uzak adres değil, "localhost:< > SSH bağlantısında belirtilen bağlantı noktası adıdır". Örnekte 13389 belirtildi, bu yüzden burada "localhost:13389" a bağlanacağız.
Kimlik doğrulama ekranı görüntülenirse, bağlantının tamamlandığına karar verebilirsiniz. Bağlanmak için kullanıcı adınızı ve şifrenizi girin.
Bu şekilde bağlantı kurabiliyorsanız, başardınız.
Güvenlik duvarı ayarlarında normal uzak masaüstü bağlantılarını devre dışı bırakın
Önceki öğenin zamanında, artık SSH kullanarak uzak masaüstüne bağlanabilirsiniz. Ancak, bu durumda, "SSH ile Uzak Masaüstü Bağlantısı" yalnızca "Normal Uzak Masaüstü Bağlantısı"na eklenmiştir. Güvenlik açısından hiçbir şey katmaz. Bu yüzden yapılacak bir sonraki şey, "normal uzak masaüstü bağlantısını" önlemektir.
Bu ayarı yaparsanız, "SSH ile uzak masaüstü bağlantısı" dışında bağlanamazsınız, bu nedenle ayarlarla uğraşırsanız, uzaktan bağlanma imkanınız olmayabilir. Bu nedenle, "SSH ile uzak masaüstü bağlantısının" mümkün olup olmadığını önceden kontrol ettiğinizden ve bağlanmaya çalıştığınız istemci kaybolsa bile uzak ortamı başka yollarla çalıştırabildiğinizden emin olun.
Burada, güvenlik duvarı ayarlarını "SSH ile Uzak Masaüstü Bağlantısı" nda yapılandırın. Bunun nedeni, işlemi "normal uzak masaüstü bağlantısı" ile gerçekleştirirseniz, güvenlik duvarını ayarladığınız anda bağlantısının kesilmesidir.
Gelişmiş Güvenlik Özellikli Windows Defender Güvenlik Duvarı'nı görüntüleyin. Windows sürümüne bağlı olarak, ekranın konumu değişecektir, bu nedenle lütfen bu sürüme göre görüntüleyin.
Soldaki menüden Gelen Kuralları'nı seçin.
Ortadaki listede, "Uzak Masaüstü - Kullanıcı Modu (TCP Girişi)" ni bulun ve özelliklerini açın.
Kapsam sekmesini seçin, yerel IP adresini Bu IP adresleri olarak değiştirin ve Ekle düğmesine tıklayın.
127.0.0.1 girin ve Tamam düğmesine tıklayın. Bu, 127.0.0.1 dışında herhangi bir yerden uzak masaüstü bağlantılarını engeller. 127.0.0.1, makinenize işaret eden IP adresidir. Yanlış değer girerseniz, herhangi bir yerden bağlanamayabilirsiniz, bu yüzden dikkatli olun.
Tıkla OK onaylamak için düğmesine basın.
Şimdilik, bu tek başına bir karşı önlemdir, ancak "Uzak Masaüstü - Kullanıcı Modu (UDP Alma)" seçeneğini de ayarlayalım.
SSH dışında herhangi bir şeyle uzaktan bağlanamadığınızı doğrulayın
Şimdi, SSH kullanmayan başka bir bilgisayardan uzak masaüstü bağlantısı kurmayı deneyin.
Bağlanabiliyorsanız, kimlik doğrulama ekranı görüntülenecektir. Bağlantının aşağıda gösterildiği gibi yapılamadığını onaylayabilirseniz sorun olmaz.
Özet
En son Windows ile bir SSH sunucusu tanıtmak artık çok kolay. Ayarları ekleyerek artık uzak masaüstü bağlantınızın güvenliğini kolayca artırabilirsiniz. Ancak, yalnızca Windows'un kendisindeki güvenlik önlemlerinden sorumlu olduğu için, Daha güvenli hale getirmek istiyorsanız, Windows'a bağlanmadan önce ayrı bir SSH sunucusu veya güvenlik duvarı kurmanın tercih edildiğini düşünüyorum.
Ayrıca, SSH kullanarak güvenliği sıkı bir şekilde ayarlayabilirsiniz, ancak çok zor olduğunda, operasyonel bir hata nedeniyle kimse bağlanamaz. Bununla bitmemeye dikkat edin.