SCP ve SFTP arasındaki fark nedir?


158

Genellikle, scp* nix'lerdeki dosyaları aktarmak için komutu kullanırım.

SFTP ve SCP arasındaki fark nedir? İkisi de SSH'de çalışmıyor mu?

Yanıtlar:


98

Özetle, SCP sadece dosya aktarmak için kullanılabilir ve etkileşimli değildir (yani her şey komut satırında belirtilmelidir). SFTP daha ayrıntılıdır ve etkileşimli komutların dizin oluşturma, dizinleri ve dosyaları silme (elbette sistem izinlerine tabi), vb.


32
Etkileşim ile ilgili: Tanımladığınız fark, OpenSSH'de uygulanan belirli SFTP / SCP istemcileriyle ilgili. Protokollerin kendileri hakkında bir şey değil. Etkileşimli SCP istemcisi veya etkileşimli olmayan SFTP istemcisi uygulamak tamamen mümkündür.
Martin Prikryl

4
Bir şey daha: scp, sunucu yalnızca hat üzerinden SFTP erişimine izin veriyorsa çalışmaz ForceCommand internal-sftp. Sanırım PermitTTY noscp erişimini engelliyor ama sftp erişimine izin veriyor, ancak her denediğimde şifremi yanlış yazabildiğim halde. Ancak bu iki şey sftp'yi engellememelidir. Kaynak: kişisel deneyim.
ecube

Herhangi bir SFTP sunucusunun da SCP aktarımlarını kabul edebileceğini varsayabilir miyim?
gus

@gus no, ecube adlı kullanıcının yorumuna bakın
Pere

102

Gönderen Vikipedi :

Yalnızca dosya aktarımına izin veren önceki SCP protokolüyle karşılaştırıldığında, SFTP protokolü uzak dosyalar üzerinde çeşitli işlemlere izin verir - bu daha çok uzak dosya sistemi protokolü gibidir. Bir SFTP istemcisinin bir SCP istemcisine kıyasla ekstra yetenekleri, kesintili transferleri, dizin listelerini ve uzaktan dosya kaldırmayı sürdürmek. [1] Bu nedenlerden dolayı, bir GUI SCP istemcisiyle karşılaştırıldığında bir GUI SFTP istemcisi uygulamak nispeten basittir.

ve

Hem SCP hem de SFTP, aynı genel ek yük düzeyine sahip dosya aktarımı sırasında aynı SSH şifrelemesini kullanmasına rağmen, SCP genellikle dosya aktarmada, özellikle de yüksek gecikmeli ağlarda SFTP'den çok daha hızlıdır. Bunun nedeni, SCP'nin paket onaylarını beklemenizi gerektirmeyen daha verimli bir transfer algoritması uygulamasından kaynaklanmaktadır. Bu daha hızlı hıza yol açar, ancak bir transferi durduramamak pahasına gelir, bu yüzden SFTP'nin aksine SCP transferi oturumu sonlandırmadan iptal edilemez.


17
"SCP genellikle dosya aktarımında SFTP'den çok daha hızlıdır."
Micah Bolen,

3
"Ama bir transferi durduramamak pahasına gelir". Bu oldukça önemli bir takas.
aaaaaa

8

Tamamen komut satırı açısından:

  • scp'nin etkileşimli bir modu yoktur ve komut komut dosyalarını da okuyamaz, bu her şeyin komut satırına yazılması gerektiği anlamına gelir.
  • sftp etkileşimli bir moda sahiptir ve bir dosyadan komutları okuyabilir.

2 komut arasındaki diğer önemli fark, sftp'nin tek bir komut satırı kullanarak yerel bir dosyayı tek bir komut satırı kullanarak uzak bir konuma getirememesidir, ancak scp her ikisini de yapabilir .

sftp uzak bir dosya al

sftp user@host:/path/to/remote.file [/path/to/local.file]

scp uzak dosya almak

scp user@host:/path/to/remote.file [/path/to/local.file]

scp uzak dosya koymak

scp /path/to/local.file user@host:[/path/to/remote.file]

1
Bir dosya koymak:sftp {user}@{host}:{remote_dir} <<< $'put {local_file_path}'
gdw2

2

SSH ( S ecure SH ell) Uzak giriş ve diğer ağ hizmetleri güvenli olmayan bir ağ üzerinden güvenli çalışmasına izin vermek için bir kriptografik ağ protokolüdür.

Farklılıklar: SFTP etkileşimli modda (oturum) çalışır ve SCP etkileşimli değil üzerinde çalışır. SFTP kullanarak uzak dosya sistemine erişebiliriz, yani dosyaları oluşturma, silme ve listeleme.

Benzerlikler: Her iki SCP ( S ecure opyala p rotocol) ve SFTP ( S , SH F ile T ransfer p rotocol), bir ağ üzerindeki konaklar arasında dosya yönetimi destekleyen ağ protokolleri vardır. Her ikisi de SSH kullanır.

Daha


1

İki protokolün birçok farklılığı zaten diğer cevaplarda ve daha ayrıntılı olarak https://unix.stackexchange.com/q/8707/19088

Curl belgelerine göre, bir başka fark, SCP protokolünün çok taşınabilir olmaması ve genellikle sadece Unix sistemleri arasında çalışmasıdır.

Bu arada, curl her iki protokolü de uygular ve varsayılan OpenSSH SFTP istemci uygulamasından farklı olarak SFTP ve SCP için etkileşimli değildir .

Ayrıca , SCP veya SFTP'ye gerek duymadan SSH üzerinden dosya aktarmanıza olanak sağlayan FISH protokolünün bulunduğunu unutmayın . Bildiğim kadarıyla FISH çok popüler değil, şu anda sadece birkaç dosya yöneticisinde ( Midnight Commander ve bazıları KDE tabanlı) ve Lftp'de uygulanmaktadır .


1
"Curl belgelerine göre başka bir fark, SCP protokolünün çok taşınabilir olmaması ve genellikle sadece Unix sistemleri arasında çalışmasıdır." Cevabınızın bu kısmının ironisi, en popüler SCP GUI'sinin WinSCP olarak adlandırıldığı ve - tahmin ettiğiniz gibi - bu bir Windows Programı.
brett

1
@ brett en popüler müşteri muhtemelen OpenSSH’nin notu, çok konuşlu olduğunu söyleyebilirim. WinSCP bir SCP / SFTP / etc istemcisidir ancak günümüzde çoğunlukla (S) FTP istemcisi olarak kullanılmaktadır: "Haziran 2003'te sürüm 3.0'da piyasaya sürüldü ve SFTP protokolü olan SCP'ye alternatif desteği sundu. Zaman içinde alternatiften gelişti. birincil protokole. Buna rağmen, köklü ismi “WinSCP” korunmuştu. ” (WinSCP Tarihinden: winscp.net/tr/docs/project_history)
Pere
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.