Özet
sftp [-46AaCfNpqrv] [-B buffer_size] [-b batchfile] [-c cipher] [-D sftp_server_command]
[-F ssh_config] [-i identity_file] [-J destination] [-l limit] [-o ssh_option] [-P port]
[-R num_requests] [-S program] [-s subsystem | sftp_server] [-X sftp_option] destination
Açıklama
sftp, tüm işlemleri şifreli bir ssh(1) aktarımı üzerinden gerçekleştiren, ftp(1)'e benzer bir dosya aktarım programıdır. Ayrıca ssh'ın ortak anahtar (public key) kimlik doğrulaması ve sıkıştırma gibi birçok özelliğini de kullanabilir.
Hedef, [kullanıcı@]makine[:yol] şeklinde veya sftp://[kullanıcı@]makine[:port][/yol] biçiminde bir URI olarak belirtilebilir.
Hedef bir yol içeriyorsa ve bu yol bir dizin değilse, etkileşimli olmayan (non-interactive) bir kimlik doğrulama yöntemi kullanıldığında sftp dosyaları otomatik olarak alacaktır; aksi takdirde, başarılı bir etkileşimli kimlik doğrulamasından sonra bunu yapacaktır.
Herhangi bir yol belirtilmemişse veya belirtilen yol bir dizinse, sftp belirtilen makinede oturum açacak ve etkileşimli komut moduna girecektir; eğer bir uzak dizin belirtilmişse bu dizine geçiş yapacaktır. İsteğe bağlı bir eğik çizgi (/), yolun bir dizin olarak yorumlanmasını zorunlu kılmak için kullanılabilir.
Hedef biçimleri, makine adlarını yol adlarından veya port numaralarından ayırmak için iki nokta üst üste karakterini kullandığından, olası karmaşıklıkları önlemek için IPv6 adresleri köşeli parantez içine alınmalıdır.
Seçenekler aşağıdaki gibidir:
-4: sftp'yi yalnızca IPv4 adreslerini kullanmaya zorlar.-6: sftp'yi yalnızca IPv6 adreslerini kullanmaya zorlar.-A: ssh-agent(1)'in uzak sisteme yönlendirilmesine izin verir. Varsayılan olarak kimlik doğrulama aracısı yönlendirilmez.-a: Dosyaların mevcut kısmi veya tam kopyalarının üzerine yazmak yerine, yarıda kalmış aktarımları devam ettirmeye çalışır. Eğer kısmi içerik aktarılmakta olan içerikten farklıysa, sonuçta elde edilen dosya büyük olasılıkla bozuk olacaktır.
-B buffer_size Specify the size of the buffer that sftp uses when transferring files. Larger buffers require fewer round trips at the cost of higher memory consumption. The default is 32768 bytes.
-b batchfile Yığın (batch) modu, stdin yerine girdi olarak verilen bir batchfile dosyasından bir dizi komut okur. Kullanıcı etkileşimi olmadığından, bağlantı sırasında parola girme ihtiyacını ortadan kaldırmak için etkileşimli olmayan bir kimlik doğrulama yöntemiyle birlikte kullanılmalıdır (ayrıntılar için sshd(8) ve ssh-keygen(1) kılavuzlarına bakın).
Standart girdiyi (stdin) belirtmek için batchfile olarak ‘-’ kullanılabilir. sftp, aşağıdaki komutlardan herhangi biri başarısız olursa işlemi durduracaktır: get, put, reget, reput, rename, ln, rm, mkdir, chdir, ls, lchdir, copy, cp, chmod, chown, chgrp, lpwd, df, symlink ve lmkdir.
Hata durumunda sonlandırma işlemi, komutun önüne bir ‘-’ karakteri getirilerek komut bazında engellenebilir (örneğin, -rm /tmp/blah*). Komutun ekrana yazdırılması (echo), komutun önüne bir ‘@’ karakteri getirilerek engellenebilir. Bu iki önek herhangi bir sırayla birleştirilebilir, örneğin -@ls /bsd.
-C: Sıkıştırmayı etkinleştirir (ssh'ın -C bayrağı aracılığıyla).
-c cipher Veri aktarımlarını şifrelemek için kullanılacak şifreleme algoritmasını (cipher) seçer. Bu seçenek doğrudan ssh(1)'e aktarılır.
-D sftp_server_command (ssh(1) üzerinden değil) Doğrudan yerel bir sftp sunucusuna bağlanır. Bir komut ve argümanları belirtilebilir, örneğin "/path/sftp-server -el debug3". Bu seçenek, istemci ve sunucuda hata ayıklama (debugging) yaparken yararlı olabilir.
-F ssh_config ssh(1) için alternatif bir kullanıcı bazlı yapılandırma dosyası belirtir. Bu seçenek doğrudan ssh(1)'e aktarılır.
-f: Dosyaların aktarıldıktan hemen sonra diske yazılmasını (flush) talep eder. Dosya yüklerken (upload) bu özellik yalnızca sunucu "fsync@openssh.com" uzantısını uyguluyorsa etkinleştirilir.
-i identity_file Ortak anahtar (public key) kimlik doğrulaması için kimliğin (özel anahtar / private key) okunacağı dosyayı seçer. Bu seçenek doğrudan ssh(1)'e aktarılır.
-J destination Önce destination ile tanımlanan sıçrama makinesine (jump host) bir sftp bağlantısı kurarak ve ardından oradan nihai hedefe bir TCP yönlendirmesi oluşturarak hedef makineye bağlanır. Virgül karakterleriyle ayrılmış birden fazla sıçrama noktası belirtilebilir. Bu, bir ProxyJump yapılandırma yönergesini belirtmenin kısayoludur. Bu seçenek doğrudan ssh(1)'e aktarılır.
-l limit Kullanılan bant genişliğini Kbit/s cinsinden sınırlar.
-N: Sessiz (quiet) modu devre dışı bırakır; örneğin -b bayrağı tarafından ayarlanan örtük sessiz modu geçersiz kılmak için kullanılır.
-o ssh_option ssh_config(5) dosyasında kullanılan biçimde ssh'a seçenekler iletmek için kullanılabilir. Bu, ayrı bir sftp komut satırı bayrağı bulunmayan seçenekleri belirtmek için yararlıdır. Örneğin, alternatif bir port belirtmek için şunu kullanın: sftp -oPort=24. Aşağıda listelenen seçeneklerin tüm ayrıntıları ve olası değerleri için ssh_config(5) kılavuzuna bakın.
AddKeysToAgent AddressFamily BatchMode BindAddress BindInterface CASignatureAlgorithms CanonicalDomains CanonicalizeFallbackLocal CanonicalizeHostname CanonicalizeMaxDots CanonicalizePermittedCNAMEs CertificateFile ChannelTimeout CheckHostIP Ciphers ClearAllForwardings Compression ConnectTimeout ConnectionAttempts ControlMaster ControlPath ControlPersist DynamicForward EnableEscapeCommandline EnableSSHKeysign EscapeChar ExitOnForwardFailure FingerprintHash ForkAfterAuthentication ForwardAgent ForwardX11 ForwardX11Timeout ForwardX11Trusted GSSAPIAuthentication GSSAPIDelegateCredentials GatewayPorts GlobalKnownHostsFile HashKnownHosts Host HostKeyAlgorithms HostKeyAlias HostbasedAcceptedAlgorithms HostbasedAuthentication Hostname IPQoS IdentitiesOnly IdentityAgent IdentityFile IgnoreUnknown Include KbdInteractiveAuthentication KbdInteractiveDevices KexAlgorithms KnownHostsCommand LocalCommand LocalForward LogLevel LogVerbose MACs NoHostAuthenticationForLocalhost NumberOfPasswordPrompts ObscureKeystrokeTiming PKCS11Provider PasswordAuthentication PermitLocalCommand PermitRemoteOpen Port PreferredAuthentications ProxyCommand ProxyJump ProxyUseFdpass PubkeyAcceptedAlgorithms PubkeyAuthentication RekeyLimit RemoteCommand RemoteForward RequestTTY RequiredRSASize RevokedHostKeys SecurityKeyProvider SendEnv ServerAliveCountMax ServerAliveInterval SessionType SetEnv StdinNull StreamLocalBindMask StreamLocalBindUnlink StrictHostKeyChecking SyslogFacility TCPKeepAlive Tag Tunnel TunnelDevice UpdateHostKeys User UserKnownHostsFile VerifyHostKeyDNS VisualHostKey XAuthLocation
-P port Uzak makinede bağlanılacak portu belirtir.
-p: Aktarılan orijinal dosyaların değiştirilme zamanlarını, erişim zamanlarını ve izin modlarını korur.-q: Sessiz mod: ilerleme göstergesinin (progress meter) yanı sıra ssh(1)'den gelen uyarı ve tanı iletilerini devre dışı bırakır.
-R num_requests Aynı anda kaç tane bekleyen (outstanding) istek olabileceğini belirtir. Bu değerin artırılması dosya aktarım hızını biraz iyileştirebilir ancak bellek kullanımını artıracaktır. Varsayılan değer 64 bekleyen istektir.
-r: Yükleme ve indirme yaparken tüm dizinleri özyinelemeli (recursively) olarak kopyalar. sftp'nin, dizin ağacı taranırken karşılaşılan sembolik bağları (symbolic links) takip etmediğini unutmayın.
-S program Şifreli bağlantı için kullanılacak programın adı. Program ssh(1) seçeneklerini anlayabilmelidir.
-s subsystem | sftp_server Uzak makinedeki SSH2 alt sistemini (subsystem) veya sftp sunucusunun yolunu belirtir. Uzak sshd(8) üzerinde bir sftp alt sistemi yapılandırılmamışsa bir yol belirtmek yararlıdır.
-v: Günlükleme (logging) seviyesini artırır. Bu seçenek ssh'a da iletilir.
-X sftp_option SFTP protokolü davranışının yönlerini kontrol eden bir seçenek belirtir. Geçerli seçenekler şunlardır:
nrequests=value Bir indirme veya yükleme sırasında herhangi bir anda en fazla kaç eşzamanlı SFTP okuma veya yazma isteğinin işlemde olabileceğini kontrol eder. Varsayılan olarak aynı anda 64 istek aktif olabilir.
buffer=value İndirme veya yükleme sırasında kullanılan tek bir SFTP okuma/yazma işlemi için maksimum arabellek (buffer) boyutunu kontrol eder. Varsayılan olarak 32 KB'lık bir arabellek kullanılır.
Etkileşimli Komutlar
Etkileşimli moda girildiğinde sftp, ftp(1) komutlarına benzer bir dizi komutu anlar. Komutlar büyük/küçük harfe duyarlı değildir (case insensitive). Boşluk içeren yol adları tırnak içine alınmalıdır. Yol adlarında bulunan ve glob(3) tarafından tanınan tüm özel karakterler ters eğik çizgi (‘\’) ile kaçış karakterine dönüştürülmelidir.
bye sftp'den çıkar.
cd [path] Uzak dizini path (yol) olarak değiştirir. Eğer path belirtilmemişse, oturumun başladığı dizine geçiş yapar.
chgrp [-h] grp path path dosyasının grubunu grp olarak değiştirir. path, glob(7) karakterleri içerebilir ve birden fazla dosyayla eşleşebilir. grp sayısal bir GID olmalıdır.
Eğer -h bayrağı belirtilirse sembolik bağlar takip edilmez. Bunun yalnızca "lsetstat@openssh.com" uzantısını uygulayan sunucular tarafından desteklendiğini unutmayın.
chmod [-h] mode path path dosyasının izinlerini mode olarak değiştirir. path, glob(7) karakterleri içerebilir ve birden fazla dosyayla eşleşebilir.
Eğer -h bayrağı belirtilirse sembolik bağlar takip edilmez. Bunun yalnızca "lsetstat@openssh.com" uzantısını uygulayan sunucular tarafından desteklendiğini unutmayın.
chown [-h] own path path dosyasının sahibini own olarak değiştirir. path, glob(7) karakterleri içerebilir ve birden fazla dosyayla eşleşebilir. own sayısal bir UID olmalıdır.
Eğer -h bayrağı belirtilirse sembolik bağlar takip edilmez. Bunun yalnızca "lsetstat@openssh.com" uzantısını uygulayan sunucular tarafından desteklendiğini unutmayın.
copy oldpath newpath Uzak dosyayı oldpath yolundan newpath yoluna kopyalar.
Bunun yalnızca "copy-data" uzantısını uygulayan sunucular tarafından desteklendiğini unutmayın.
cp oldpath newpath copy komutunun takma adıdır (alias).
df [-hi] [path] Mevcut dizini (veya belirtilmişse path yolunu) barındıran dosya sisteminin kullanım bilgilerini görüntüler. Eğer -h bayrağı belirtilirse, kapasite bilgileri "insan tarafından okunabilir" (human-readable) sonekler kullanılarak görüntülenir. -i bayrağı, kapasite bilgilerine ek olarak inode bilgilerinin de görüntülenmesini talep eder. Bu komut yalnızca “statvfs@openssh.com” uzantısını uygulayan sunucularda desteklenir.
exit sftp'den çıkar.
get [-afpR] remote-path [local-path] remote-path yolunu alır ve yerel makinede saklar. Yerel yol adı belirtilmemişse, uzak makinedeki adın aynısı verilir. remote-path, glob(7) karakterleri içerebilir ve birden fazla dosyayla eşleşebilir. Eğer birden fazla dosyayla eşleşirse ve local-path belirtilmişse, local-path bir dizin belirtmelidir.
Eğer -a bayrağı belirtilirse, mevcut dosyaların kısmi aktarımlarını devam ettirmeye çalışır. Devam ettirme işleminin, yerel dosyanın herhangi bir kısmi kopyasının uzak kopyayla eşleştiğini varsaydığını unutmayın. Uzak dosya içeriği kısmi yerel kopyadan farklıysa, sonuçta elde edilen dosya büyük olasılıkla bozuk olacaktır.
Eğer -f bayrağı belirtilirse, dosyayı diske yazmak (flush) için dosya aktarımı tamamlandıktan sonra fsync(2) çağrılır.
Eğer -p bayrağı belirtilirse, tam dosya izinleri ve erişim zamanları da kopyalanır.
Eğer -R bayrağı belirtilirse, dizinler özyinelemeli (recursively) olarak kopyalanır. sftp'nin özyinelemeli aktarımlar gerçekleştirirken sembolik bağları takip etmediğini unutmayın.
help Yardım metnini görüntüler.
lcd [path] Yerel dizini path olarak değiştirir. Eğer path belirtilmemişse, yerel kullanıcının ev dizinine (home directory) geçiş yapar.
lls [ls-options [path]] Belirtilmişse path yolunun, belirtilmemişse mevcut dizinin yerel dizin listesini görüntüler. ls-options, yerel sistemin ls(1) komutu tarafından desteklenen tüm bayrakları içerebilir. path, glob(7) karakterleri içerebilir ve birden fazla dosyayla eşleşebilir.
lmkdir path path ile belirtilen yerel dizini oluşturur.
ln [-s] oldpath newpath oldpath'ten newpath'e bir bağ oluşturur. Eğer -s bayrağı belirtilirse oluşturulan bağ bir sembolik bağdır, aksi takdirde bir sabit bağdır (hard link).
lpwd Yerel çalışma dizinini yazdırır.
ls [-1afhlnrSt] [path] Belirtilmişse path yolunun, belirtilmemişse mevcut dizinin uzak dizin listesini görüntüler. path, glob(7) karakterleri içerebilir ve birden fazla dosyayla eşleşebilir.
Aşağıdaki bayraklar tanınır ve ls'in davranışını buna göre değiştirir:
-1: Tek sütunlu çıktı üretir.-a: Nokta (‘.’) ile başlayan dosyaları listeler.-f: Listeyi sıralamaz. Varsayılan sıralama düzeni sözlükbilimseldir (lexicographical).-h: Uzun biçim seçeneğiyle birlikte kullanıldığında, boyutlar için 2'nin kuvvetlerini kullanarak (K=1024, M=1048576 vb.) basamak sayısını dört veya daha aza indirmek amacıyla şu birim soneklerini kullanır: Byte, Kilobyte, Megabyte, Gigabyte, Terabyte, Petabyte ve Exabyte.-l: İzinler ve sahiplik bilgileri dahil olmak üzere ek ayrıntıları görüntüler.-n: Kullanıcı ve grup bilgilerinin sayısal olarak sunulduğu uzun bir liste üretir.-r: Listenin sıralama düzenini tersine çevirir.-S: Listeyi dosya boyutuna göre sıralar.-t: Listeyi son değiştirilme zamanına göre sıralar.
lumask umask Yerel umask değerini umask olarak ayarlar.
mkdir path path ile belirtilen uzak dizini oluşturur.
progress İlerleme göstergesinin (progress meter) görüntülenmesini açar/kapatır (toggle).
put [-afpR] local-path [remote-path] local-path yolunu yükler (upload) ve uzak makinede saklar. Uzak yol adı belirtilmemişse, yerel makinedeki adın aynısı verilir. local-path, glob(7) karakterleri içerebilir ve birden fazla dosyayla eşleşebilir. Eğer birden fazla dosyayla eşleşirse ve remote-path belirtilmişse, remote-path bir dizin belirtmelidir.
Eğer -a bayrağı belirtilirse, mevcut dosyaların kısmi aktarımlarını devam ettirmeye çalışır. Devam ettirme işleminin, uzak dosyanın herhangi bir kısmi kopyasının yerel kopyayla eşleştiğini varsaydığını unutmayın. Yerel dosya içeriği uzak kısmi kopyadan farklıysa, sonuçta elde edilen dosya büyük olasılıkla bozuk olacaktır.
Eğer -f bayrağı belirtilirse, dosya aktarıldıktan sonra fsync(2) çağrılması için sunucuya bir istek gönderilir. Bunun yalnızca "fsync@openssh.com" uzantısını uygulayan sunucular tarafından desteklendiğini unutmayın.
Eğer -p bayrağı belirtilirse, tam dosya izinleri ve erişim zamanları da kopyalanır.
Eğer -R bayrağı belirtilirse, dizinler özyinelemeli (recursively) olarak kopyalanır. sftp'nin özyinelemeli aktarımlar gerçekleştirirken sembolik bağları takip etmediğini unutmayın.
pwd Uzak çalışma dizinini görüntüler.
quit sftp'den çıkar.
reget [-fpR] remote-path [local-path] remote-path indirmesini devam ettirir. -a bayrağı ayarlanmış get komutuna eşdeğerdir.
reput [-fpR] local-path [remote-path] local-path yüklemesini devam ettirir. -a bayrağı ayarlanmış put komutuna eşdeğerdir.
rename oldpath newpath Uzak dosyayı oldpath yolundan newpath yoluna yeniden adlandırır.
rm path path ile belirtilen uzak dosyayı siler.
rmdir path path ile belirtilen uzak dizini kaldırır.
symlink oldpath newpath oldpath'ten newpath'e bir sembolik bağ oluşturur.
version sftp protokol sürümünü görüntüler.
!command Komutu yerel kabukta (shell) çalıştırır.
! Yerel kabuğa geçiş yapar (escape).
? help komutunun eş anlamlısıdır.
Ayrıca Bakınız
ftp(1), ls(1), scp(1), ssh(1), ssh-add(1), ssh-keygen(1), ssh_config(5), glob(7), sftp-server(8), sshd(8)
T. Ylonen ve S. Lehtinen, SSH File Transfer Protocol, draft-ietf-secsh-filexfer-00.txt, Ocak 2001, devam eden çalışma materyali.