Visual Studio Code ve Remote SSH ile Uzak Geliştirme Ortamı


Workcube "Workcube Geliştirim Ortamı – Yazılım Dilleri" yazısında belirtilen teknolojik altyapıları kullanmakta ve "Dev, QA, Release ve Live" başlıklı içerikte belirtildiği gibi geliştirilmektedir. Dijital dönüşüm ve teknolojiyi yakından takip ederek birlikte çalışma kabiliyetlerini iyileştirmek amacıyla sürekli AR-GE faaliyetlerini yürütmektedir. Bu kapsamda; geliştiricilerin halihazırda kullandıkları lokal makineleri üzerinde "Workcube ve Git" başlıklı içeriğimizde de detaylı olarak belirtildiği gibi aşağıdaki yapıda Git ile Bitbucket bulut ortamında geliştirilmeye devam edilmektedir.


VS Code Remote Kullanıcı ve Geliştirme Ortamı Oluşturma

İlk olarak dev sunucusunda yeni bir kullanıcı açılmalı. Bunun için:

  1. dev sunucusuna bağlanılmalı. (77.92.119.10)

  2. Burada yeni bir Windows Kullanıcısı oluşturularak, kullanıcı Administrator grubuna eklenmeli. Bu kullanıcı için oluşturulan parola, aynı zamanda kullanıcının VS Code Remote SSH kullanırken gireceği paroladır.

Bu işlem sonrasında, gerekli klasörlerin oluşturulması için, Remote SSH kullanacak kişinin bilgisayarından VS Code kullanılarak, dev sunucusunda oluşturulan hesaba SSH eklentisi aracılığıyla bağlanılması gerekiyor.

Kullanıcı bilgisayarında eğer yoksa, vs code ve vs code  içindeki gerekli eklentiler kurulmalı.

Bu işlemler için aşağıdaki akış takip edilmeli:

  1. VS Code içine Remote - SSH eklentisi kurulmalı.

  2. Kurulan eklenti üzerinden yeni bir SSH bağlantısı yapılmalı.

    1. Sol altta bulunan >< simgesi tıklanarak ya da, CTRL+SHIFT+P kısayolu kullanılarak açılan input içerisine ssh username@77.92.119.10 kodu kullanılarak bağlantı işlemi yapılabilir.

  3. Bağlantı sonrası, SSH Config dosyası içinde şu bilgiler bulunmalı:

    1. Host 77.92.119.10 (sunucu ip adresi)

    2. HostName 77.92.119.10 (sunucu ip adresi)

    3. User username (oluşturulan windows kullanıcı adı)

  4. Burada giriş için şifre soracak. Bu şifre, en başka oluşturulan windows kullanıcısına verilen şifredir.

  5. Bağlantı işleminde hata çıkması durumunda aşağıdaki Olası Hatalar başlığını inceleyin.

Bağlantı başarılı bir şekilde gerçekleştikten sonra, bitbucket üzerinden repository clone işlemi yapılmalı. Bu işlem ile, kullanıcı, remote ortamında Workcube kodları ile geliştirme yapabilecektir.

Bu işlem için öncelikle Bitbucket üzerinden app password oluşturulması gerekiyor. İşlemler, Remote SSH hesabı açılan kullanıcının Bitbucket Hesabından yapılmalıdır. Aşağıdaki adımlar izlenerek oluşturulabilir:

  1. Bitbucket Personal Setting sayfasına girin. (https://bitbucket.org/account/settings/)

  2. Bu sayfadan App Password ayarına geçin. (https://bitbucket.org/account/settings/app-passwords/)

    Bu sayfada Create Password butonu tıklanarak, çıkan tüm Permission’lara izin verilmeli ve bir İsim vermelisiniz. (Label)
  3. Tüm izinler verilip Create butonuna tıkladıktan sonra, yeni bir App Password oluşturulacak ve bir pencere içerisinde gösterilecek. Bunu not edin, tekrar görüntüleyemezsiniz.

Repository Clone İşlemi

  1. Bitbucket’dan devcatalyst repository’sine geçin ve clone url’ini kopyalayın. (https://bitbucket.org/workcube/devcatalyst/src/master/)

  2. URL’in https olduğunda emin olun. Örnek: 

    1. git clone https://username@bitbucket.org/workcube/devcatalyst.git

    2. username kısmı, kullanıcının bitbucket kullanıcı adı olmalı.

  3. VS Code içinde, Source Control sekmesine geçin. (Varsayılan kısayol -> CTRL+SHIFT+X) İki şekilde clone işlemi yapılabilir:

    1. İlk Yöntem: Clone Reposity butonuna tıklayın ve açılan input’a kopyaladığınız bitbucket url’ini yapıştırın. Öncesinde aşağıdaki gibi bir değişiklik yapmamız gerekiyor:

      1. git clone https://username@bitbucket.org/workcube/devcatalyst.git

      2. URL üstteki yerine aşağıdaki gibi olmalı:

      3. git clone https://username:appPassword@bitbucket.org/workcube/devcatalyst.git

      4. appPassword kısmına, bitbucket üzerinden oluşturduğumuz app password’ü yazmamız gerekiyor. Diğer durumlarda hata ile karşılaşırız.

    2. İkinci Yöntem: Terminal -> New Terminal menüsünü kullanarak yeni bir terminal açtıktan sonra, üstteki gibi değiştirdiğiniz bitbucket url’sini terminal ekranına yapıştırıp Enter tuşuna basın.

    3. İki yöntemle de aynı sonuca ulaşacaksınız. Clone işlemi bittikten sonra, kullanıcı bilgisayarında VS Code ile tüm işlemler bitmiş oluyor.

Sunucuda Site İşlemlerinin Yapılması

Sunucu tarafında, yeni oluşturulan Remote SSH kullanıcısı için site oluşturma işlemleri yapılması gerekiyor.

  1. Dev sunucusuna bağlandıktan sonra, Internet Information Services (IIS) Yöneticisi programını açın.

  2. Sol menüde Siteler başlığına sağ tıklayarak Web Sitesi Ekle seçeneğini seçin.

    1. Site Adı: Kullanıcı için oluşturulacak web adresi.

    2. Fiziksel Yol: Yeni oluşturulan Windows kullanıcı klasöründe bulunan devcatalyst klasörü.

    3. Bağlama->Tür: https

    4. Bağlama->Bağlantı Noktası: 443

    5. Bağlama->Ana Bilgisayar adı: Site Adı ile aynı

    6. Bağlama->SSL Sertifikası: *.workcube.com seçilmeli.

    7. Tamam butonuna basarak site oluşturulmuş olacak.

    1. Yeni oluşturulan site üzerinde sağ tıklayıp, sanal dizin ekle seçeneği seçilmeli. Burada üstteki görseldeki işlemler yapılmalı:

    2. Alias: documents

    3. Physical Path: C:\W3Catalyst\Dev\PROD\documents

    4. Sonrasında Tamam butonuna basarak onaylayın.

    1. Sıradaki işlem, cf web server configuration tool programını açarak, yeni siteyi ColdFusion’a eklemek (Program açıldıktan sonra Add... butonuna tıklayın):

    2. AppServer Host: localhost

    3. AppServer ınstance: cfusion

    4. IIS Website: yeni oluşturulan domain (dev-şehir)

    5. Diğer ayarlarda değişiklik yapmadan onaylayın.

    1. Bir sonraki işlem SQL Server ile yeni kullanıcının ayarlarını Veri tabanında yapmak:

    2. Sağ tık Edit seçeneğini seçerek WRK_SYSTEM_PARAMS tablosunu açın.

    3. Üstteki kayıtlardan birini kopyalayarak yeni bir kayıt oluşturun.

    4. WSP_DOMAIN kolonuna, yeni oluşturulan domaini yazın.

    5. WSP_PARAM kolonunu kopyalayın ve bir JSON editör ile açın.

      1. İçindeki bilgileri, yeni oluşturulan Windows kullanıcı adı ve yeni oluşturulan domain için düzenleyin. (Kopyaladığınız kayıttaki bilgiler yerine yeni oluşturulan kullanıcı ve domain bilgilerini girin.)

  3. Sonraki işlem, Dosya Gezgini ile, yeni oluşturulan Windows Kullanıcısının home dizinine gidin ve devcatalyst klasörüne sağ tıklayıp özelliklerini açın. (C:\Users\username)

    1. Güvenlik sekmesine geçin

    2. Grup ya da kullanıcı adları->düzenle->ekle yolunu izleyin

    3. Seçilecek nesne adlarını girin kısmına users yazın ve Adları Denetle butonuna basın.

    4. Oradan çıkan Users’ı seçin, tüm izinleri verin ve onaylayın.

  4. Bu işlem bittikten sonra, yeni oluşturulan domain’in açılması için hosts dosyasına eklenmesi gerekiyor.

    1. Siteye girilecek bilgisayarda C:\Windows\System32\drivers\etc klasörü içindeki hosts dosyasını açın. (Dosyayı yönetici olarak açmalısınız.)

    2. Dosya içine şu satırı ekleyin: 77.92.119.10 dev-sehir.workcube.com (dev-sehir kısmına yeni açılan domain neyse o yazılmalı.)

  5. Son olarak Coldfusion Server’ı Görev Yöneticisinden yeniden başlatın.

Bu işlemlerden sonra kullanıcı, VS Code kullanarak remote kullanıcısına ve dev-sehir domaini ile de geliştirme ortamına ulaşabilecektir.


Visual Studio Code Remote - SSH eklentisi aşağıda gösterilen altyapı ile çalışmakta olup eklenti sayesinde fiziksel veya sanal uzak makinelere erişim sağlanarak geliştirme yapılabilmektedir. Günümüzde geliştiriciler normal bir dizüstü bilgisayarda mevut olandan daha fazla depolama alanına, işlemci gücüne ve/veya belleğe ihtiyaç duyabilmekteler. Bu nedenle özel geliştirici sanal makinelerine veya fiziksel sunuculara ihtiyaç duymaktadırlar ki özellikle büyük çaplı projelerle çalışırken...

Dijital Geleceği Workcube ile Kodlayın!

Olası hatalar: Visual Studio Code Remote SSH ile bağlantı yapılırken uzak sunucu işletim sistemi seçilmekte, kullanıcı adı ve şifre girildikten sonra erişim sağlanmaktadır. Eklenti kurulduktan sonra ilk bağlantı sırasında Resim 1'deki hataya benzer bir hata ile karşılaşabilirsiniz. 

Hatanın çözümü için SSH bağlantısı için seçtiğimiz Resim 2'deki konfigürasyon dosyamızın bulunuğu .ssh dizininin tam yolunu SSH bağlantı ayarlarındaki Resim 3'deki alana tanımlamak sorunu çözecektir. 

Ayrıca git versiyon uyumsuzluğu konusunda uyarı vermesi halinde local ortamdaki git versiyonunun güncellenmesi gerekebilir. Son olarak karşı taraftaki kullanıcı dizininize makineniz için vscode-server eklentisi yüklenirken bağlanamama sorunu yaşanması durumunda Ctrl+Shift+P tuşlarına basıldığında açılan pencerede çıkan Remote-SSH: Kill VS Code Server on Host seçeneği seçilerek hata giderilerek yeniden bağlantı sağlanır.

Resim 1: Windows Ortamında Olası Hata Ekranı


Resim 2: Remote SSH için Local Konfigürasyon Yolunun Kopyalanması


Resim 3: Remote SSH için Local Konfigürasyon Dosyası Yolunun Belirtilmesi (CTRL+Shift+P)


Yardımcı Kaynaklar:

https://code.visualstudio.com/docs/remote/ssh

https://code.visualstudio.com/docs/remote/ssh-tutorial

https://help.ubuntu.com/community/SSH?action=show

https://www.dlford.io/docker-vscode-remote-development-server/

https://code.visualstudio.com/blogs/2019/10/03/remote-ssh-tips-and-tricks

https://www.digitalocean.com/community/tutorials/how-to-use-visual-studio-code-for-remote-development-via-the-remote-ssh-plugin

Geri Bildirim

Bu içeriği faydalı buldunuz mu?