Mentransfer file menggunakan scp: izin ditolak


23

Saya mencoba mentransfer file dari komputer jarak jauh menggunakan sshke komputer saya:

scp My_file.txt user_id@server:/Home

Ini harus meletakkan My_file.txt di folder rumah di komputer saya sendiri, kan? saya mendapat

scp / Home: izin ditolak

Juga ketika saya mencoba ...@server:/Desktop:, untuk menyalin file dari komputer jarak jauh ke desktop saya.

Apa yang saya lakukan salah?


1
Jika Anda ingin menyalin file ke folder home dari 'user_id' gunakan scp My_file.txt user_id@server:itu menyalin ke folder home pengguna.
Manula Waidyanatha

Jawaban:


36

Perintah Anda mencoba meletakkan Dokumen baru ke root ( /) mesin Anda. Yang ingin Anda lakukan adalah mentransfernya ke direktori home Anda (karena Anda tidak punya izin untuk menulis /). Jika jalur ke rumah Anda adalah sesuatu seperti /home/erezcoba yang berikut ini:

scp My_file.txt user_id@server:/home/erez/

Anda dapat mengganti jalur ke direktori home Anda dengan cara pintas ~/, sehingga hal berikut ini akan memiliki efek yang sama:

scp My_file.txt user_id@server:~/

Anda bahkan dapat meninggalkan jalan sama sekali di sisi terpencil; ini berarti direktori home Anda.

scp My_file.txt user_id@server:

Artinya, untuk menyalin file ke desktop Anda, Anda mungkin ingin mentransfernya ke /home/erez/Desktop/:

scp My_file.txt user_id@server:/home/erez/Desktop/

atau menggunakan cara pintas:

scp My_file.txt user_id@server:~/Desktop/

atau menggunakan jalur relatif di sisi jarak jauh, yang ditafsirkan relatif terhadap direktori home Anda:

scp My_file.txt user_id@server:Desktop/

Edit:

Seperti @ chhan sudah disebutkan, Anda juga harus menukar argumen, itu harus

scp FROM TO

Jadi, jika Anda ingin menyalin file My_file.txtdari server user_id@serverke desktop Anda, Anda harus mencoba yang berikut:

scp user_id@server:/path/to/My_file.txt ~/Desktop/

Jika file My_file.txttersebut berada di direktori home Anda di server, Anda dapat menggunakan pintasan lagi:

scp user_id@server:~/My_file.txt ~/Desktop/

- Saya sudah mencoba: "~ /" untuk 'Home' sekarang, dan juga "~ / Desktop /. Keduanya menghasilkan: My_file.txt 100% 0 0,0 KB / s 00:00, dan saya tidak dapat melihat file di apa yang masih saya lakukan salah? Terima kasih banyak!
Erez

Pada contoh perintah kedua Anda, ~harus dilindungi dari evaluasi sehingga dapat dievaluasi pada host jarak jauh: \~misalnya.
dan

1
Untuk mengucapkan terima kasih, saya mendaftar ke situs web. Terima kasih Anda telah menyelamatkan hari saya :)
Infinitum

6

Saya datang ke sini untuk "Mentransfer file menggunakan scp: izin ditolak" karena saya memiliki kesalahan yang sama.

Dalam kasus saya, file yang diunduh dengan scp akan ditimpa file yang dimiliki oleh root, dan saya bukan root. Singkatnya, periksa kepemilikan file yang ditimpa.


1
Dalam hal ini karena dia mencoba menulis /Homedan tidak menjadi root, dia tidak memiliki akses tulis di luar~/
Shadur

Anda membantu saya.
longdeqidao

4

ini sepertinya seperti masalah perizinan

File mungkin tidak memiliki izin baca karena dikirim ke server tujuan sebagai akun sumber.

Anda perlu memastikan file pada sumbernya memiliki izin yang diperlukan, terutama izin baca

-rw-r - r--

chmod 744

lalu scp file ke tujuan. Ini akan diselesaikan


3
-rw-r--r--adalah 644, bukan 744. Mengatur izin yang dapat dieksekusi pada file yang sebenarnya tidak dapat dieksekusi dapat menyebabkan masalah.
G-Man Mengatakan 'Reinstate Monica'

3

Apa yang memperbaiki "izin ditolak" bagi saya adalah, pada server jarak jauh, ubah kepemilikan folder menjadi root: (Ini dapat terjadi ketika Anda mengirim file ke pengguna non-root, dan direktori dimiliki oleh root!) Di mesin jarak jauh (menyalin tujuan):

sudo chown (your username) (remote folder)

Yang pasti, aktifkan semua izin pada folder jarak jauh: (Tidak selalu perlu):

sudo chmod 777 (remote folder)

1

Anda memiliki argumen untuk scpdibalik. Ini sumber pertama, lalu tujuan, seperti cp. man scpuntuk lebih jelasnya.


1

Permisssion Denied berarti Anda bukan root dari server. Anda cukup memegang akun di sana. Jadi dalam hal ini Anda perlu melakukan ini:

sudo scp -r /path2yourFolder/ username@server_Ip:/home/username

Ini akan menyalin ke direktori home Anda di server.

Ini juga akan berfungsi:

scp -r /path2yourFolder/ username@server_Ip:~/

0

Instal alat windows "mRemoteG" dari www.mremoteng.org/

Buat koneksi SSH Anda ke kotak yang diinginkan.

Klik menu "Transfer File".

Ini akan memungkinkan untuk mentransfer file dengan mudah dari Windows ke Linux.

Terima kasih.


0

Amazon Linux AMI

Pastikan bahwa Anda perlu menetapkan jalur server absolut, dari rumah dalam kasus saat ini:

scp file.txt SSH-ALIAS:/home/YOUR_USER/

0

Izin yang sama berlaku di kedua sisi scp. Anda akan mendapatkan kesalahan ini jika pengguna tidak memiliki izin untuk menulis ke tujuan. Gejala tampaknya melibatkan sumber, namun dalam kasus saya tujuan dibuat oleh root dan tidak memiliki izin menulis untuk akun pengguna yang dimaksud.


0

Dalam kasus saya, saya juga mencoba untuk memberikan semua izin dengan -R ke folder tetapi masih mendapat kesalahan tentang izin.

Saya harus menghapus "/" sebelum jalur server dan folder target. Alasannya adalah karena Unduhan adalah folder pertama yang dapat saya daftarkan setelah saya ssh ke server, misalnya: ssh tiennsloit@13.76.91.2

Ini bekerja:

sudo scp -rp /Users/macintosh.vn/Downloads/bbhs_20190301.zip tiennsloit@13.76.91.2: Unduhan

Ini tidak berfungsi:

sudo scp -rp /Users/macintosh.vn/Downloads/bbhs_20190301.zip tiennsloit@13.76.91.2: / Unduh


0

Memperbaiki mudah. Pastikan ANDA root. SCP ke remote dan ia akan meminta Anda untuk kata sandi root mesin. Baru saja masalah ini yang solusinya. Anda root mereka root.


Karena login root biasanya dinonaktifkan di sshd_config , Anda harus menunjukkan OP bagaimana mengubahnya (walaupun tidak disarankan).
ajgringo619

Mengapa Anda bersikeras menggunakan root untuk menyalin file (apa saja)? Perhatikan juga jawaban yang diterima dari ~ 7 tahun yang lalu ...
Jeff Schaller

-3

sebelum menggunakan perintah scp, pastikan Anda memberi izin membaca, menulis, dan mengeksekusi kepada semua orang di luar. "chmod 777 nama file"


Anda dapat menyalin file yang bukan 777
Archemar
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.