SFTP Nedir ve Nasıl Kullanılır? (SSH Dosya Transfer Protokolü)

FTP, bilgisayarlar arasında dosya ve veri transferinin standart yöntemidir ancak günümüzün güvenliğe önem verilen ortamında git gide eskimeye başlamıştır. Tam olarak bu noktada, özellikle de VPS hosting kullanıcıları için kullanışlı olan SFTP devreye girmektedir.

Bu rehberde güvenli dosya transferi için SFTP’yi nasıl kullanacağınızı ve buna ek olarak diğer kullanışlı komutların nasıl çalıştığını anlatacağız.

SFTP Kullanarak Bağlantı Nasıl Kurulur?

SFTP, SSH’in bir alt sistemidir. Bu nedenden dolayı da bütün SSH doğrulama yöntemlerini destekler. SFTP kurulumu ve şifre doğrulaması kolay olsa da şifresiz SFTP girişi için SSH anahtarları oluşturmak çok daha kolay ve güvenlidir.

SSH anahtarlarınızı nasıl oluşturacağınızı öğrenmek için bu rehbere göz atın. Hazır olduktan sonra SFTP ile bağlantı kurmak için aşağıdaki adımları takip edin:

  1. Aşağıdaki komutlardan birini kullanarak SSH erişiminizi kontrol edin:
    ssh user@sunucu_ipadresi
    ssh user@uzakhost_domainadi
  2. İşiniz bittikten sonra herhangi bir hatayla karşılaşmazsanız oturumdan çıkın.
  3. Aşağıdaki komutlarla bir SFTP bağlantısı kurun:
    sftp user@server_ipaddress
    sftp user@uzakhost_domainadi
  4. Eğer özel bir SSH port’u kullanıyorsanız SFTP port’unu değiştirmek için aşağıdaki komutlardan birini kullanın:
    sftp -oPort=customport user@sunucu_ipadresi
    sftp -oPort=customport user@uzakhost_domainadi
  5. İşte komutun örnek kullanımı:
    sftp -oPort=49166 user@31.220.57.32

Bağlantı kurduktan sonra bir SFTP istemi göreceksiniz.

SFTP Kullanarak Dosya Transferi Nasıl Yapılır?

Şimdiyse SFTP kullanarak uzak sunucudan yerel makineye dosya transferi nasıl yapılır göstereceğiz.

NOT: Dosyalarınızı WinSCP veya FileZilla gibi SFTP istemcilerini de kullanarak transfer edebilirsiniz. Eğer FileZilla ilginizi çekiyorsa FileZilla ile ilgili rehberimize buradan ulaşabilirsiniz.

Sunucudan Yerel Sisteme Dosya Transferi

Başlangıç için hangi yerel ve uzak dizini kullandığımızı kontrol edelim. Bunun için bu SFTP komutlarını kullanacağız:

sftp> lpwd
Local directory: /LocalDirectory
sftp> pwd
Remote directory: /RemoteDirectory

Şimdiyse get komutunu kullanarak uzak sunucudan yerel makinenize nasıl dosya transfer edilir göstereceğiz. get komutunun temel sözdizimi ise:

get /uzak-dizin/dosya.txt

Örnek olarak /etc/xinetd.conf dosyasını uzak sunucudan (31.220.57.32) yerel makinenize kopyalamak için bu komutu kullanmalısınız:

get /etc/xinetd.conf

İndirme bittikten sonra bütün *.conf dosyalarını yerel makinenizin /kullanici/home dizininde bulabilirsiniz.

Birden çok dosya indirmek içinse mget komutunu kullanabilirsiniz. Örnek olarak /etc adlı bir dizindeki bütün .conf uzantısına sahip olan dosyaları indirmeyi göstereceğiz:

mget /etc/*.conf

İndirme bittikten sonra bütün *.conf  dosyalarını makinenizdeki /kullanici/anadizin kısmında bulabilirsiniz.

SFTP Kullanarak Yerel Makineden Uzak Sunucuya Dosya Transferi

Yerel makineden uzak sunucuya dosya kopyalamak için get komutunu kullanın. get komutunun sözdizimiyse:

get dosya.txt /UzakDizin

İşte yerel makineden uzak sunucuya ornek.txt adlı dosyayı transfer etmek için örnek bir komut:

put /home/kullaniciadi/ornek.txt /root

İşte burada hedef makinenin (uzak sunucunun) kök dizininde bulabileceksiniz. Ayrıca mput komutunu kullanarak birden çok dosya transferi yapmayı deneyebilirsiniz. Bu komut neredeyse mget ile aynı şekilde çalışmaktadır:

mput/home/kullaniciadi/*.txt /root

Bu komut /home/kullaniciadi dizinindeki .txt uzantılı bütün dosyaları yerel makineden uzak makinenin /root dizinine taşır.

NOT: Unutmayın ki dosyaları indirmek ve karşıya yüklemek için put veya get komutunu girmeli TAB tuşuna basmalısınız.

SFTP’de Gezinmek için Komutlar

SFTP ile uzak ve yerel sunucularda daha kolay gezinmek için bazı komutları kullanabilirsiniz. Bu komutlar Linux kabuk isteminde kullandıklarınıza oldukça benzerdir.

Örneğin pwd komutunu şu anda hangi dizinde çalıştığınızı öğrenmek için kullanabilirsiniz.

sftp> pwd
Remote directory: /RemoteDirectory

veya

sftp> lpwd
Local directory: /LocalDirectory

Ayrıca uzak dizin için kullandığınız dosyaların ve dizinlerin listesini de görüntüleyebilirsiniz:

ls

Aynı komutun yerel dizin için olanı:

lls

Sonuç buna benzer olacaktır:

Pictures     Templates     Media     Text.txt     Documents

Bir uzak dizinden diğer yerel çalışma dizinine geçmek için aşağıdaki komutları girin:

cd name_of_directory
lcd name_of_directory

Son olarak !  ve exit komutlarını kullanarak yerel kabuğa geri dönün ve SFTP’den çıkın.

SFTP Kullanarak Temel Dosya Yönetimi

SFTP ile belirli komutları kullanarak dizinleri ve dosyaları da yönetebilirsiniz.

Uzak sunucunun disk alanını gigabyte birimiyle kontrol etmek için df fonksiyonunu kullanın:

df -h

İşte elde edeceğinizi sonucun bir örneği:

Filesystem         Size  Used Avail Use% Mounted on
/dev/ploop29212p1   59G  2.5G   56G   5% /
none               1.5G     0  1.5G   0% /sys/fs/cgroup
none               1.5G     0  1.5G   0% /dev
tmpfs              1.5G     0  1.5G   0% /dev/shm
tmpfs              1.5G  568K  1.5G   1% /run
tmpfs              308M     0  308M   0% /run/user/0

mkdir komutunu uzak veya yerel sunucuda yeni bir dizin oluşturmak için kullanın:

mkdir name_of_directory
lmkdir name_of_directory

rmdir komutunu kullanarak uzak sunucudan bir dizin silebilirsiniz:

rmdir name_of_directory

Dosya adı değiştirmek de oldukça kolaydır:

rename filename new_filename

İşte bu komutun kullanımına dair bir örnek:

rename Old_FileExample New_FileExample

Eğer uzak sunucuda yüklü bir dosyayı silmek istiyorsanız rm komutunu kullanın:

rm filename

chown komutuysa dosya sahibini değiştirmek için kullanılır:

chown userid filename

userid bir kullanıcıadı veya rakamlardan oluşan kullanıcı ID‘si olabilir. Örneğin:

chown UserOne FileExample
chown 1234 FileExample

chgrp ise bir dosya grubunun sahibini değiştirmek için kullanılır:

chgrp groupid filename

Örneğin:

chgrp NewGroup FileExample

Son olarak interaktif chmod komutunu kullanarak dosyanın iznini değiştirebilirsiniz:

chmod 764 FileExample

Bu örnekte üç haneli değer dosyanın kullanıcısıgrubu ve diğer kullanıcılara tekabül eder.

okuma (r)yazma (w), and çalıştırma (x) izinlerinin değerleriyse sırayla 421‘dir. İzin vermemek içinse 0‘ı kullanabilirsiniz.

İzin atamak içinse her kullanıcı sınıfı için toplam değerleri hesaplayın. İşte örneğin analizi:

chmod ugo FileExample
# u represents the User who'll be able to read, write and execute the file.
# g is for Groups, here we've given the permission to write and execute the file.
# o or Others will only be able to read the file.

Kullanışlı SFTP Komutları Listesi

Eğer bir kopya listesine ihtiyacınız varsa işte mevcut bütün SFTP komutlarını içeren bir liste. Bu listeyi help veya komutunu girerek de kendiniz elde edebilirsiniz.

bye                                Quit sftp
cd path                            Change remote directory to 'path'
chgrp [-h] grp path                Change group of file 'path' to 'grp'
chmod [-h] mode path               Change permissions of file 'path' to 'mode'
chown [-h] own path                Change owner of file 'path' to 'own'
df [-hi] [path]                    Display statistics for current directory or
                                   filesystem containing 'path'
exit                               Quit sftp
get [-afpR] remote [local]         Download file
help                               Display this help text
lcd path                           Change local directory to 'path'
lls [ls-options [path]]            Display local directory listing
lmkdir path                        Create local directory
ln [-s] oldpath newpath            Link remote file (-s for symlink)
lpwd                               Print local working directory
ls [-1afhlnrSt] [path]             Display remote directory listing
lumask umask                       Set local umask to 'umask'
mkdir path                         Create remote directory
progress                           Toggle display of progress meter
put [-afpR] local [remote]         Upload file
pwd                                Display remote working directory
quit                               Quit sftp
reget [-fpR] remote [local]        Resume download file
rename oldpath newpath             Rename remote file
reput [-fpR] local [remote]        Resume upload file
rm path                            Delete remote file
rmdir path                         Remove remote directory
symlink oldpath newpath            Symlink remote file
version                            Show SFTP version
!command                           Execute 'command' in local shell
!                                  Escape to local shell

SFTP Nedir?

SSH Dosya Transfer Protokolü veya kısaca SFTP, dosya transferi için çok güvenli bir yöntemdir. SSH protokolünü kullanarak dosya transferlerini daha iyi korumak için diğer güvenlik yöntemlerini ve şifrelemeyi destekler. Tercih edilen protokol olmasının sebebiyse dosya transferi işleminin her aşamasında saldırıya karşı koruma sağlayan tek güvenli dosya transfer protokolü olmasıdır.

Dosya transferi sürecinde bütün veriler paketlere ayrılır ve tek bir güvenlik bağlantı üzerinden yollanır.

Hassas mod şifrelenecektir ve istemciyle sunucu arasında taşınırken okunmaz olacaktır. Bir başka deyişle, orijinal içerik (düz metin) bir takım manasız karakter (şifreli metin) dizisiyle değiştirilecektir.

Orijinal içeriği sadece gerekli şifre çözme anahtarına sahip olan alıcı görebilecektir. Böylelikle dosya transferi sürecinde herhangi bir yetkisiz giriş engellenmiş olacaktır.

Normal dosya transfer protokolünde (FTP) ise veri alışverişi için iki kanal bulunmaktadır: komut kanalı ve veri kanalı. Buna karşılık olarak SFTP’de ise taşınan verinin şifrelendiği ve paketler halinde taşındığı şifreli kanal bulunmaktadır.

Sonuç

İşte bu kadar! SFTP’yi güvenli dosya transferi için nasıl kullanacağınıza dair bütün temel bilgileri edinmiş oldunuz. Umuyoruz ki rehberimiz size yardımcı olmuştur. Ancak FTP kousunda daha fazla bilgiye ihtiyacınızv varsa burada daha fazla rehber bulabilirsiniz.

Eğer herhangi bir sorunuz varsa aşağıdaki yorumlar kısmını kullanarak sorularınızı bize yöneltebilirsiniz!

Author
Yazar

Gökhan O.

Gökhan Hostinger’da YouTube Takım Lideri olarak çalışmakta. WordPress hakkındaki tecrübe ve bilgisini bu blogda paylaşıyor. Hostinger’ın adını YouTube içeriği üzerinden duyurmayı kendine görev edinmiştir. Hobileri arasında oyun oynamak ve futbol maçları izlemek vardır.