Windows SSH ile Sanal Makineye Uzaktan Bağlanma
Published: 2021-08-09 17:02:18

SSH komutu sunucuya (bilgisayara ,sanal makine vs) uzaktan bağlanılmasını sağlar. Windows işletim sisteminde ; SSH komutu ile sunucuya uzaktan bağlanmak için ; Windows PowerShell veya terminal kullanılır. Windows Terminal 'i kolay bir şekilde bilgisayarınıza indirebilirsiniz.

Bağlantı kurulan uzak sunucuda kimi zaman SSH paketi yüklü olmayabilir. Bu sebeple sunucuya uzaktan bağlanılamaz.Öncelikle karşı sunucuya aşağıdaki komutlar yardımı ile SSH paketi yüklenmeli ve parolasız bağlantı için gerekli dizin ve dosyalar oluşturulmalıdır. Sırasıyla aşağıdaki komutlar takip edilmelidir :
```
sudo apt update 
sudo apt install openssh-server
cd 
mkdir .ssh
cd .ssh
touch authorized_keys known_hosts config
```
**Kurulum tamamlandıktan sonra** 
##1.Sanal Makinenin IP'sinin Tespiti

Sanal makinede statik IP ayarlaması yapılmalıdır.

Statik IP ayarlamaları için ; https://dev.to/aciklab/yeni-bir-samba-etki-alani-olusturma-42pd makalesinin static IP ayarlama kısmı takip edilebilir.

 Statik IP ayarlamaları yapıldıktan sonra ; 
```
ip a 
```
Komutu ile aşağıdaki görseldeki gibi ekranda IP adresi görülür. 
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ajebat8tyh6vxc6c3c4t.jpg)
Bu IP adresini **terminal ekranınıza** 
```
ssh kullanici_adiniz@IP
```
 
komutunu girip , çıkan ekranda şifreyi girdikten sonra sunucunuza uzaktan bağlanmış olursunuz.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yorumr5hus8mo2utvmau.jpg)
## 2.VSCode Üzerinden Uzak Bağlantı Kuracağımız SSH Bağlantı Ayarlanması

SSH ile uzaktan bağlanırken , sunucunuz tanınabilir ve bu sayede uzaktan bağlanırken şifre istemez.

**1.**VSCode üzerinden görseldeki gösterildiği gibi SSH Configuration dosyasını açınız.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1y6mn9lr88yhp33fooy4.png)

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0wv3dip205w8vpaktyrn.png)

Configuration dosyası Windows da kendi kullanıcı adınızın altında .ssh olarak bulunur.

**2.**Orada SSH bağlantısı yapacağınız sunucunun adresini bulun.

Host : Sunucunuza özgürce koyabileceğiniz isimdir. Örneğin ;Liman sunucusu için limanmys verebilirsiniz.

HostName :Bağlanmak istediğiniz sunucunun IP adresini gösterir.

User :Sunucuya bağlanmak istediğiniz kullanıcıyı veriniz. Liman sunucusu için liman tercih edebilirsiniz.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kllmiw0w2ohyu56aydn4.png)
Configuration dosyasındaki gereken işlemler yapıldıktan sonra **terminal** ekranına geliniz .Yapılan işlemlerin doğruluğunun kontrolü için,  Configuration dosyasında **host** olarak tanımladığınız ismi , 
```
ssh test

```
komutuyla çalıştırınız. Aşağıdaki görseldeki gibi IP adresi girmeden kullanıcınıza bağlanması , VSCode SSH configuration dosyasındaki işlemlerinizi doğru yaptığınızı gösterir

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pxqx93kol0v3n9115nka.png)
##3.Parola Yerine SSH Anahtarı ile Bağlanma
**1**
SSH anahtarı oluşturmak için aşağıdaki komut ile
```
ssh-keygen
```
 SSH anahtarı oluşturun. Bu anahtar sunucunuzun tanınmasını sağlar. Komut girildikten sonra , sizden anahtar şifresi oluşturmanızı isteyecektir. Bu soruları direk geçiniz. Şifre oluşturursanız , her bağlantıda sizden anahtar şifresini isteyecektir.

Gerekli işlemler yapıldıktan sonra , terminalde aşağıdaki görsele benzer bir görsel oluşması gereklidir. 

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yk7h8qmpfxb6z7tq9lal.png)
**2**.Yukarıdaki gibi ekran geldikten sonra aşağıdaki komutu giriniz. 
```
type $env:USERPROFILE\.ssh\id_rsa.pub | ssh test "cat >> .ssh/authorized_keys" 
```
SSH kısmını kendi kullandığınız isime göre düzenleyiniz.
**3.**Komutu girdikten sonra sizden şifrenizi isteyecektir. Şifrenizi giriniz.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9ykkuucure2ymmkcr2tw.png)
**4.**Artık sunucunuza şifre kullanmadan uzaktan bağlanabilirsiniz.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o3mczq81be1yzfzudlrt.png)