Yanıtlar:
Ö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.
ForceCommand internal-sftp
. Sanırım PermitTTY no
scp 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.
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.
Tamamen komut satırı açısından:
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 user@host:/path/to/remote.file [/path/to/local.file]
scp user@host:/path/to/remote.file [/path/to/local.file]
scp /path/to/local.file user@host:[/path/to/remote.file]
sftp {user}@{host}:{remote_dir} <<< $'put {local_file_path}'
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 Cı 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.
İ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 .