da SSH (Secure Shell - Güvenli Kabuk) kullanımı ile başladığımız uzak bilgisayarlarla bağlantı kurma yöntemlerine bu ay SFTP (Secure File Transfer Program - Güvenli Dosya Aktarım Programı) ve SCP (Secure Copy - Güvenli Kopyalama) kullanımını anlatarak devam ediyoruz.

SFTP Kullanımı

SFTP, diğer dosya transfer programları gibi FTP (File Transfer Protocol - Dosya Aktarım Protokolü)'yi kullanarak sistemler arasında dosya transferi yapabilmenizi sağlar. SFTP'yi diğer dosya aktarım programlarından ayıran yönü ise sistemler arası bağlantı kurarken SSH'i kullanmasıdır. Bu sayede bir taşla iki kuş vurup, hem bağlantı güvenliğini en üst düzeye çekmiş oluyoruz hem de SFTP bağlantımız aracılığıyla bazı SSH özelliklerini de kullanabiliyoruz.

Peki SFTP'yi kullanmamız için neye ihtiyacımız var? Eğer bir Linux dağıtımı kullanıyorsak hiçbir derdimiz yok çünkü SFTP neredeyse bütün Linux dağıtımlarında standart olarak bulunuyor. Ama eğer işletim sistemimiz Windows ise bir SFTP istemcisi kurmamız şart. Bunun için de en uygun seçenek açık kaynak kodlu bir uygulama olan WinSCP.

Gelelim SFTP'yi nasıl kullanacağımıza. SFTP'de de yapacağımız temel şey bağlan emri vermek:

$ sftp host_ismi

"sftp" komutu SFTP metodunu kullanacağımızı, host adı ise bağlanacağımız adresi belirtiyor. Kolay, değil mi? Bu adımı uyguladığınızda sizden bir şifre isteyecek, siz de gireceksiniz tabii. Fakat o da ne! Şifrenizi bir türlü kabul etmiyor, halbuki doğru da giriyorsunuz. Şu haliyle kullanıcı adı vermediğimiz için karşı taraftaki sunucunun kullanıcı adı istemesi halinde SFTP otomatik olarak sizin oturum açma adınızı kullanacak. Eğer kullanıcı adınız da oturum açma adınızla aynı değil ise tabii ki sunucu sizin oturum açmanıza izin vermeyecek. Bunu düzeltmek için "@" bağlacından faydalanıyoruz.

$ sftp hesap_ismi@host_ismi

Bu kez SFTP'ye adresi de kullanıcı adımızı da. Şifremizi de biliyorsak kim tutabilir bizi :)

sftp>

Eğer ekranımızda bu satırı görebiliyorsak başarılı bir şekilde bağlantı kurabilmişiz demektir. Artık dosyalarımızı gönderebilir, alabilir, onlara türlü türlü şeyler yapabiliriz. Şimdi bunları yapabilmemiz için gerekli olan komutlardan sık kullanılanları inceleyelim:

  • help: Yardım komutudur. Tüm komutların ve bu komutların işlevlerinin listesini verir.
  • put: Karşı bilgisayara dosya kopyalamıza yarar. sftp> put dosyanin_yeri (koyulacak_yer)
  • get: Karşı bilgisayardan kendi bilgisayarımıza dosya kopyalamamızı sağlar. sftp> get dosyanin_yeri (koyulacak_yer)
  • cd: Bilgisayarımızdan da tanıdığımız klasör değiştirme komutudur. Karşı bilgisayarda klasör değiştirir.
  • lcd: Kendi bilgisayarımızda klasör değiştirmemizi sağlar.
  • rm: Karşı bilgisayardaki dosyayı siler.
  • rmdir: Karşı bilgisayardaki klasörü siler.
  • chmod: Dosyalara ait kullanıcı izinlerini değiştirmenizi sağlar. sftp> chmod izin_kodu dosyanin_konumu
  • ls: Karşı bilgisayardaki klasörün içeriğini gösterir.
  • lls: Kendi bilgisayarınızdaki klasörün içeriğini gösterir.
  • rename: Karşı bilgisayardaki dosyanın ismini değiştirir. sftp> rename eski_isim yeni_isim
  • mkdir: Karşı bilgisayarda klasör oluşturur.
  • lmkdir: Kendi bilgisayarınızda klasör oluşturur.

İşiniz bitince de çıkmayı unutmayın...

sftp> exit
sftp> quit
sftp> !

SCP Kullanımı

SCP (Secure Copy - Güvenli Kopyalama), bir ağdaki iki bilgisayar arasında dosya kopyalamanızı sağlar. Bağlantı sırasında SSH kullandığı için dosya aktarımı şifreli ve güvenlidir. SCP'yi kullanabilmeniz için SSH Client (SSH istemcisi) bilgisayarınızda kurulu olmalıdır. Yine Linux sistemlerinin hemen hemen hepsinde bu standart olarak gelmektedir. Windows işletim sistemine sahip bir bilgisayara SSH istemcisinin nasıl kurulacağını öğrenmek için SSH Kullanımı yazımıza göz atabilirsiniz.

SCP'nin kullanımı gayet basit ve kısadır. Siz komutu verdikten sonra bağlantısını kurar, dosyasını kopyalar ve bağlantısını kapatır. Kullanım mantığı temel olarak "cp" komutunun kullanımıyla aynıdır:

$ scp kopyalacak_dosyanın_adi kopyalanacağı_yer

Peki o zaman SCP'nin farkı ne? SCP uzak bilgisayarlarla iletişime geçebilen bir komut, öyleyse ona dosyanın mı yoksa kopyalanacağı yerin mi (yada ikisi birden) uzak bilgisayarda olduğunu söylemeli, konumlarını belirtmeliyiz. Bunu yapmak için uzak bilgisayarda olan konumun başına "kullanıcı_adı@host_ismi:" gibi bir tanımlayıcı koymamız gerekiyor.

Eğer karşı bilgisayardan kendi bilgisayarımıza kopyalayacaksak:

$ scp kullanıcı_adı@host_ismi:kopyalacak_dosyanın_adi kopyalanacağı_yer

Kendi bilgisayarımızdan karşı bilgisayara kopyalayacaksak:

$ scp kopyalacak_dosyanın_adi kullanıcı_adı@host_ismi:kopyalanacağı_yer

Uzak bilgisayarlar arası kopyalayacaksak:

$ scp kullanıcı_adı@host_ismi:kopyalacak_dosyanın_adi kullanıcı_adı@host_ismi:kopyalanacağı_yer

Bu kadar basit. Bu adımdan sonra size karşı tarafın şifresi sorulacak, onu da girdikten sonra dosyalarınız kopyalanacak. Eğer iç içe dosyaları ve klasörleri de kopyalamak isterseniz özyineleme parametresini (-r) kullanabilirsiniz. Dosya paylaşımı da işte bu kadar kolay, tadını çıkarın...

Kaynaklar:

  • BSD Genel Komutlar Kullanım Kılavuzu