File lokal SSH SCP ke Remote di Terminal Mac Os X.

90

Saya mencoba menyalin file lokal 'magento.tar.gz' dari mesin lokal saya ke server jarak jauh menggunakan SSH melalui VPN. Ini menghubungkan ke IP Internal Mesin Virtual yang saya gunakan sebagai xx.xxxx di sini.

Saya memiliki akses 'sudo' penuh di akun SSH sehingga seharusnya tidak ada masalah saat menyalin. Saya telah mencoba yang berikut ini:

Saya sudah mencoba yang berikut (file magento.tar.gz sudah ada di direktori root lokal)

sudo scp magento.tar.gz [email protected]/var/www/

Ini meminta saya untuk mengetikkan kata sandi lokal saya. Setelah itu kembalicp: [email protected]/var/www: Not a directory

sudo scp /Users/myname/magento.tar.gz [email protected]/var/www/

Mengembalikan sama.

Apakah saya perlu menyertakan SSH di sana di mana saja?

Apakah saya perlu terhubung melalui SSH ke situs terlebih dahulu?

Catatan tambahan: Saya telah berhasil terhubung melalui SSH ke server, menelusuri direktori dan membuat folder dan menghapusnya menggunakan sudo mkdirdll jadi saya pasti memiliki izin.

James
sumber

Jawaban:

204

Pada awalnya, Anda perlu menambahkan :setelah alamat IP untuk menunjukkan jalurnya sebagai berikut:

scp magento.tar.gz [email protected]:/var/www

Saya tidak berpikir Anda perlu sudoyang scp. Dalam hal ini itu tidak mempengaruhi mesin jarak jauh, hanya perintah lokal.

Kemudian jika user@ xx.xxxx Anda tidak memiliki akses tulis ke/var/www maka Anda perlu melakukannya dalam 2 kali:

Salin ke server jarak jauh di folder rumah Anda ( :mewakili folder rumah jarak jauh Anda, gunakan :subfolder/jika perlu, atau :/home/user/untuk jalur lengkap):

scp magento.tar.gz [email protected]:

Kemudian SSH dan pindahkan file:

ssh [email protected]
sudo mv magento.tar.gz /var/www
JScoobyCed
sumber
Terima kasih. Saya mencobanya dengan titik dua tetapi mendapatkan Izin ditolak - Saya telah diberi tahu bahwa saya memiliki akses sudo penuh sehingga Izin seharusnya tidak menjadi masalah.
Yakobus
1
Terima kasih!!! Saya harus SSH remote dan pwd untuk menemukan direktori default apa yang saya gunakan adalah / home / username - scp magento.tar.gz [email protected]: / home / username / lakukan trik!
Yakobus
19

Hanya untuk memperjelas jawaban yang diberikan oleh JScoobyCed, perintah scp tidak dapat menyalin file ke direktori yang memerlukan izin administratif. Namun, Anda dapat menggunakan perintah scp untuk menyalin ke direktori milik pengguna jarak jauh.

Jadi, untuk menyalin ke direktori yang membutuhkan hak akses root, Anda harus menyalin file itu terlebih dahulu ke direktori milik pengguna jarak jauh menggunakan perintah scp. Selanjutnya, Anda harus login ke akun jarak jauh menggunakan ssh. Setelah masuk, Anda dapat memindahkan file ke direktori pilihan Anda dengan menggunakan perintah sudo mv. Singkatnya, perintah yang digunakan adalah sebagai berikut:

Menggunakan scp, salin file ke direktori di akun pengguna jarak jauh, misalnya direktori Dokumen:

scp /path/to/your/local/file remoteUser@some_address:/home/remoteUser/Documents

Selanjutnya, masuk ke akun pengguna jarak jauh menggunakan ssh dan kemudian pindahkan file ke direktori terbatas menggunakan sudo:

ssh remoteUser@some_address
sudo mv /home/remoteUser/Documents/file /var/www
legenda 12
sumber
0

Perhatikan bahwa nama file Anda juga tidak ada :di dalamnya. Saya menemukan bahwa saya harus mv blah-07-08-17-02:69.txt no_colons.txtdan scp no-colons.txt server:kemudian jangan lupa untuk mvkembali ke server. Untuk berjaga-jaga jika ini adalah masalah.

pjammer.dll
sumber
1
Itu tidak masalah jika Anda menambahkan ./sebelum nama lokal, sepertiscp ./blah-07-08-17-02:69.txt server:
Anders Tornblad