Jawaban:
Singkatnya, SCP hanya dapat digunakan untuk mentransfer file, dan itu tidak interaktif (yaitu, semuanya harus ditentukan pada baris perintah). SFTP lebih rumit, dan memungkinkan perintah interaktif untuk melakukan hal-hal seperti membuat direktori, menghapus direktori dan file (tentu saja semua tunduk pada izin sistem), dll.
ForceCommand internal-sftp
. Saya pikir PermitTTY no
juga mencegah akses scp tetapi memungkinkan akses sftp, meskipun saya bisa saja salah ketik kata sandi saya setiap kali saya mencoba. Tapi kedua hal itu seharusnya tidak mencegah sftp. Sumber: pengalaman pribadi.
Dari Wikipedia :
Dibandingkan dengan protokol SCP sebelumnya, yang hanya memungkinkan transfer file, protokol SFTP memungkinkan untuk serangkaian operasi pada file jarak jauh - ini lebih seperti protokol sistem file jarak jauh. Kemampuan tambahan klien SFTP dibandingkan dengan klien SCP termasuk melanjutkan transfer yang terputus, daftar direktori, dan penghapusan file jarak jauh. [1] Karena alasan ini, relatif mudah untuk mengimplementasikan klien GUI SFTP dibandingkan dengan klien GUI SCP.
dan
Meskipun SCP dan SFTP menggunakan enkripsi SSH yang sama selama transfer file dengan tingkat overhead umum yang sama, SCP biasanya jauh lebih cepat daripada SFTP dalam mentransfer file, terutama pada jaringan latensi tinggi. Ini terjadi karena SCP mengimplementasikan algoritma transfer yang lebih efisien, yang tidak perlu menunggu konfirmasi paket. Ini mengarah ke kecepatan yang lebih cepat tetapi dengan mengorbankan tidak dapat mengganggu transfer, jadi tidak seperti SFTP, transfer SCP tidak dapat dibatalkan tanpa mengakhiri sesi.
Dari perspektif garis perintah murni:
Perbedaan penting lainnya antara 2 perintah adalah bahwa sftp tidak dapat menempatkan file lokal ke lokasi jauh menggunakan satu baris perintah , meskipun itu bisa mendapatkan file jarak jauh, sedangkan scp dapat melakukan keduanya .
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) adalah protokol jaringan kriptografi untuk memungkinkan login jarak jauh dan layanan jaringan lainnya untuk beroperasi secara aman melalui jaringan yang tidak aman.
Perbedaan: SFTP bekerja pada mode interaktif (sesi) dan SCP bekerja pada non-interaktif. Dengan menggunakan SFTP kita dapat mengakses sistem file jarak jauh yaitu membuat, menghapus, dan mendaftarkan file.
Kemiripan: Kedua SCP ( S ecure C alin P rotocol) dan SFTP ( S SH F ile T ransfer P rotocol) adalah protokol jaringan, yang mendukung manajemen file antara host pada jaringan. Keduanya menggunakan SSH.
Sebagian besar perbedaan dari dua protokol telah dikatakan dalam jawaban lain, dan lebih secara verbal di https://unix.stackexchange.com/q/8707/19088
Perbedaan lain, menurut dokumentasi curl , adalah bahwa protokol SCP tidak terlalu portabel dan biasanya hanya berfungsi di antara sistem Unix.
Omong-omong, curl mengimplementasikan kedua protokol dan tidak seperti implementasi klien OpenSSH SFTP default, itu tidak interaktif untuk SFTP dan SCP.
Dan perhatikan bahwa ada juga protokol FISH , yang memungkinkan Anda untuk mentransfer file melalui SSH tanpa perlu SCP atau SFTP. Sejauh yang saya tahu IKAN tidak terlalu populer, saat ini diimplementasikan hanya dalam beberapa manajer file ( Midnight Commander dan beberapa yang berbasis KDE) dan Lftp .