SFTP (Güvenli Dosya Aktarım Protokolü), uzak sistemler arasında dosya aktarmanın güvenli bir yolu olarak SSH ile birlikte dahildir. Ayrıca, kullanıcıların uzak sunucularda dosyaları ve dizinleri yönetme ve dosya izinlerini ayarlama gibi temel yönetim görevlerini gerçekleştirmesine olanak tanır.
Bu öğreticide, terminal arayüzünü kullanarak yerel ve uzak bir sistem arasında dosya aktarmak için SFTP’yi nasıl kullanacağınızı göstereceğiz.
Önkoşullar
- Bir SSH ortak anahtar çifti kullanılarak bağlanan yerel bir sisteme ve uzak sunucuya erişim.
- Çalışan bir internet bağlantısı.
- Terminal penceresine erişim.
SFTP Kullanarak Nasıl Bağlanırsınız?
SFTP, SSH ağ protokolünü kullanarak sistemler arasında güvenli bir bağlantı kurar. Bu, genel SSH anahtarınızın bir kopyasına sahip herhangi bir sisteme bağlanmanızı sağlar.
SFTP kullanarak başka bir sisteme bağlanmak, SSH kullanarak bağlanmakla aynı komut sözdizimini izler. Komut, erişmek istediğiniz sistem için bir kullanıcı adı ve bir uzak ana bilgisayar adı veya IP adresi sağlamanızı gerektirir:
sftp [username]@[remote hostname or IP address]
Aşağıdaki örnekte IP adresi ile bir sisteme bağlanıyoruz. 192.168.100.5 kullanmak Anka kuşu uykusu Kullanıcı adı:
sftp phoenixnapFrosty-Selection8062.168.100.5
Geçerli bir bağlantıyı sonlandırmak için şunu kullanın:
exit
SFTP Kullanarak Dosyaları Aktarma
SFTP’yi kullanmak, dosyaları uzak bir sunucudan yerel bir sisteme veya tersi yönde aktarmanıza olanak tanır.
Uzak Dosyaları Yerel Bir Sisteme Aktarın
Kullan get
uzak bir sunucudan yerel sisteminize bir dosya aktarmak için SFTP arabirimindeki komut:
get [path to file]
Örneğin, adlı bir dosyayı aktarmak için örnek_document.txt uzaktaki sistemden Ev dizini yerel sisteme, şunu kullanın:
get example_document.txt
Varsayılan olarak, SFTP dosyaları yerel sistemin Ev dizin. Dosyaları farklı bir dizine aktarmak için, dizinin yolunu dizinin sonuna ekleyin. get
emretmek:
get example_document.txt Downloads
Yerel sistemdeki dosya adını değiştirmek için, yeni dosya adını dosyanın sonuna ekleyin. get
emretmek.
get example_document.txt sample01.txt
Yukarıdaki örnekte, get
komutu getirir örnek_document.txt dosya ve olarak kaydeder örnek01.txt yerel sistem üzerinde.
SFTP ayrıca uzak sistemden bir dizinin tamamının aktarımına izin verir. -r
dizindeki tüm dosyaların özyinelemeli aktarımını gösteren bayrak:
get -r Example_Directory
Ekle -P
bayrak get
izinleri ve erişim sürelerini koruyarak dosyayı veya dizini aktarma komutu:
get -Pr Example_Directory
Kullan ls
yerel sisteme aktarımı doğrulamak için komut:
ls -l
Yerel Dosyaları Uzak Bir Sunucuya Aktarın
Dosyaları yerel bir sistemden uzak bir sunucuya aktarmak için, put
emretmek. bu put
komut, komutla aynı sözdizimini ve seçenekleri kullanır. get
emretmek.
put [path to file]
Örneğin, transfer etmek için örnek01.txt uzak sunucuya dosya, şunu kullanın:
put example01.txt
Dosyayı uzak sunucudaki belirli bir dizine aktarmak için, dizinin yolunu dizinin sonuna ekleyin. put
emretmek.
put example01.txt Example_Directory
Sonuna yeni bir dosya adı ekleme put
komutu, uzak sunucuda aktarılan dosyanın adını değiştirir.
put example01.txt text_sample.txt
Tüm bir dizini aktarmak için -r
bayrak.
put -r Test_Directory
Ekle -P
bayrak put
dosya izinlerini koruma komutu:
put -Pr Test_Directory
kullanarak dosya aktarımını doğrulayın. ls
uzak sistemdeki komut:
Not: Mevcut seçenekler ve en yaygın kullanım durumları hakkında daha fazla bilgi edinmek için nihai SFTP Komutları kılavuzumuza bakın.
SFTP Kullanarak Dosya Bakımı
SFTP, temel dosya bakımını destekler. Örneğin, uzak bir sistemdeki dosya ve dizin izinlerini değiştirmek için SFTP’yi kullanın.
bu chown
komutu, dosya sahipliğini chmod komutuna benzer şekilde değiştirir:
chown [user ID] [path to file]
aksine chmod
emretmek, chown
yalnızca kullanıcı kimliklerini kabul eder, kullanıcı adlarını kabul etmez. SFTP arabirimini kullanarak uzak sunucu için UID’leri bulmak, /etc/şifre dosya:
get /etc/passwd
!less passwd
Her kullanıcı için UID, iki nokta üst üste ile ayrılmış olarak üçüncü sütunda bulunabilir:
bu chmod
komut, standart kabuktakiyle aynı şekilde çalışır:
chmod [permission] [path to file]
Diğer bir seçenek de grup dosyası sahipliğini değiştirmektir. chgrp
emretmek:
chgrp [group ID] [path to file]
UID’lerde olduğu gibi, grup kimlikleri de üçüncü sütunda bulunur. /etc/grup uzak sunucudaki dosya:
get /etc/group
!less group
SFTP, yerel sisteme aktarılan dosyalar için varsayılan dosya iznini değiştiren yerel bir umask ayarlamanıza olanak tanır.
Örneğin:
lumask 022
Yukarıdaki komut, yerel umask’ı şu şekilde değiştirir: 022. Bu umask’ı ayarladıktan sonra aktarılan her dosya artık 644 izin varsayılan olarak. Orijinal izni kullanarak hala koruyabilirsiniz. -p
bayrak.
Yerel dosya izinlerini değiştirmenin başka bir yolu, kabuk komutlarının davranışını çoğaltmak için SFTP kullanmaktır. Bunu yapmak için bir ünlem işareti (!) komut adından önce.
Örneğin, chmod
yerel sistemdeki komut:
!chmod [permission] [path to file]
Çözüm
Bu öğreticiyi okuduktan sonra, uzak sistemler arasında dosya ve dizin aktarmak için SFTP’yi kullanabilmeniz gerekir. Dosya aktarımı hakkında daha fazla bilgi için Ubuntu’da bir FTP sunucusu kurma kılavuzumuza bakın.