Cara SCP dari server linux ke klien Windows

23

Saya SSHing ke mesin Linux menggunakan Putty dan mencoba untuk menyalin file di suatu tempat (di mana saja) ke mesin lokal saya. Saya pikir SCP adalah kandidat terbaik untuk pekerjaan itu tetapi tidak terlalu peduli, asalkan solusinya bekerja!

I cdke direktori yang berisi file yang saya inginkan ( app.war) dan ketik yang berikut ini:

scp app.war ./

Saya sudah mencoba keduanya tetapi tidak berhasil:

scp app.war ./C:/Users/myUser/
scp app.war ./Users/myUser/

Itu membuat saya berpikir bahwa mungkin SCP adalah alat klien / server dan membutuhkan klien di mesin Windows saya, yang tidak ada di sana.

Apakah saya hanya menggunakan sintaks yang salah? Atau apakah saya jauh dari basis? Jika demikian, opsi apa yang saya miliki? Terima kasih sebelumnya!

pnongrata
sumber
Jawaban sebenarnya untuk pertanyaan ini ada di sini: stackoverflow.com/a/23412501/1579667 . Sintaksnya adalahscp some_file user@host:/c/temp
Benj
Juga lihat Menggigit klien dan server SSH. Ini adalah salah satu perangkat lunak SSH tertua untuk Windows. Klien adalah unduhan gratis dan bebas untuk digunakan.
jww

Jawaban:

25

agar Anda dapat menyalin file kembali ke Windows Anda, Anda perlu daemon SSH / layanan untuk berjalan pada Windows Anda, itu jauh lebih mudah untuk menggunakan alat ini sebagai gantinya, ia memiliki kemampuan untuk mengimpor sesi dari Putty, klien ke depan yang sangat sederhana Anda akan suka!

WinSCP :: Klien SFTP dan FTP gratis untuk Windows

alexus
sumber
Hanya alat yang luar biasa :). Loved it \ m /
Chaitanya
Itu tidak benar-benar menjawab pertanyaan asli, yang hidup di baris perintah. Lihat komentar saya di bawah pertanyaan asli.
Benj
@Benj OP meminta solusi, WinSCPadalah solusi yang bagus untuk tugas itu.
alexus
12

Anda benar. SSHD adalah layanan server SSH yang berjalan di host. Ia menerima koneksi dari klien SSH (seperti Putty), klien SCP, dan klien SFTP.

Anda dapat mengunduh pscpdari situs web yang sama di mana Putty diinangi.

Dari mesin windows, Anda akan menjalankan perintah yang mirip dengan

pscp.exe [email protected]:/path/to/app.war c:\tmp

George M
sumber
2

Untuk SCP file ke mesin Windows, Anda memerlukan server SSH / SCP pada Windows.

Tidak ada dukungan SSH / SCP di Windows secara default. Anda dapat menginstal Microsoft build OpenSSH untuk Windows ( Rilis dan Unduhan ). Ini tersedia sebagai fitur opsional pada Windows 10 versi 1803 dan yang lebih baru. Itu juga dapat diinstal secara manual pada versi Windows yang lebih lama.

Saya telah menyiapkan panduan untuk mengatur server SSH / SFTP pada Windows menggunakan Microsoft build dari OpenSSH ini .

Lihat juga Apakah IIS SFTP didukung secara asli oleh Windows?


Meskipun saat Anda memasukkan SSH ke server Linux dari mesin Windows, Anda sebenarnya dapat mengunduh file dari server Linux ke server Windows, alih-alih mencoba mengunggah file dari server Linux ke server Windows.

Di Anda memiliki akses SSH dari Windows ke Linux, Anda memiliki akses SCP juga (atau lebih baik akses SFTP).

Gunakan klien SCP / SFTP yang tersedia.

Anda dapat menggunakan klien WinSCP SFTP / SCP , yang memiliki antarmuka GUI dan command-line .

Alternatif lain adalah PutTY toolset, yang mencakup pscpalat baris perintah dengan sintaksis yang mirip dengan scpperintah OpenSSH . Juga versi terbaru Windows 10 hadir dengan OpenSSH scpbuilt-in dan dapat diinstal pada versi yang lebih lama juga.

(Saya penulis WinSCP)

Martin Prikryl
sumber
apakah ada versi pscp untuk OSX / Linux?
codingknob
@codingknob Tentu, ada paket "dempul" untuk banyak distribusi. Meskipun pscpsecara fungsional identik dengan OpenSSHscp , yang sudah tersedia di semua / sebagian besar distribusi sudah.
Martin Prikryl
1

Windows 10 sekarang memiliki OpenSSH bawaan. Https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse

Dapatkan prompt perintah admin

Open PowerShell as an Administrator.

Periksa versi yang tersedia

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

Instal klien

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

Instal server

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Mulai server dan aktifkan saat boot

Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'

Temukan alamat IP Windows Anda

ipconfig

Di mesin jarak jauh (Linux) Anda, temukan alamat IP Anda.

ifconfig

Buat kunci SSH publik

ssh-keygen.exe

Salin kunci publik dari mesin lokal (Windows) ke jarak jauh (Linux) sehingga Anda tidak harus mengetik kata sandi setiap saat.

Perhatikan bahwa ssh-copy-id saat ini tidak tersedia di Windows.

cat C:\Users\YOU/.ssh/id_rsa.pub | ssh USER@REMOTE_IP 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'

Lakukan hal yang sama pada mesin Linux Anda (Catatan, ssh-copy-id tidak berfungsi)

ssh-keygen # if needed
cat ~/.ssh/id_rsa.pub | ssh USER@WINDOWS_IP 'mkdir -p ~/.ssh && type con >> C:/Users/YOU/.ssh/authorized_keys'
  • Metode di atas tidak bekerja untuk saya, jadi saya akhirnya secara manual SCPing kunci publik berulang dan menempelkannya ke file C: /Users/YOU/.ssh/authorized_keys.

  • Itu masih tidak berfungsi, jadi saya harus memodifikasi file sshd_config.

    • Buka Notepad sebagai Administrator

    • Buka% programdata% \ ssh \ sshd_config

    • Tambahkan baris berikut:

        Match User YOU
             AuthorizedKeysFile C:/Users/YOU/.ssh/authorized_keys
  • Mulai ulang

Buat kata sandi pada Windows jika Anda belum memilikinya

System Settings...Sign-in options

- Catatan, Anda masih dapat menonaktifkan layar masuk Windows dengan a) Mengatur opsi 'Wajibkan masuk' untuk tidak pernah dan b) Menggunakan perintah 'netplwiz' dan menghapus centang pada kotak centang 'Pengguna harus memasukkan kata sandi ...'.

Sekarang Anda dapat menggunakan SSH atau SCP dari mesin Linux Anda

scp FILE WINDOWS_IP:C:/Users/YOU/Desktop
Ismail
sumber
1

Anda dapat melakukan ini dengan menggunakan subsistem Linux Ubuntu untuk Windows (Anda harus mengaktifkan ini sebagai fitur Windows). Kemudian Anda dapat menggunakan klien terminal Linux yang berjalan di Windows dengan mendapatkannya dari Microsoft Store (mis. Ubuntu 16.04 LTS). Kemudian, jika Anda memiliki ssh security yang diatur untuk remote ke mesin Linux Anda, Anda dapat scpdari terminal Windows Ubuntu lokal Anda (ketika login sebagai nama pengguna yang Anda setel untuk Linux Anda) sesuatu seperti ini:

scp -i ~/.ssh/my_rsa [email protected]:~/myfile ~/ ... masukkan frasa sandi RSA

File jarak jauh akan disalin ke sistem file Ubuntu lokal Anda yang digunakan oleh Windows misalnya

C:\Users\my.username\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\my_linux_username

Chris Halcrow
sumber
1
Di versi terbaru Windows 10, (Win32-OpenSSH) scp(.exe)adalah bawaan. Anda tidak perlu menginstal apa pun.
Martin Prikryl
-1

Langkah 1: Unduh pscp
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
(Berdasarkan mesin Anda unduh versi masing-masing)

Langkah 2: Mengenal perintah pscp
Untuk melakukannya, buka command prompt di mesin windows Anda, buka direktori tempat Anda telah mengunduh pscp.exe dan ketik "pscp"

Langkah 3: Transfer file dari mesin Linux Anda ke mesin Windows
buka command prompt Anda, dan jalankan perintah di bawah ini dengan memberikan detail Anda:

pscp [email protected]:/path/of/your/File/nameofyourfile.txt ./

dan perintah ini akan mentransfer file dari mesin Linux Anda ke direktori mesin windows Anda saat ini

Langkah 4: Transfer file dari mesin Windows Anda ke mesin Linux,
buka command prompt Anda, dan jalankan perintah di bawah ini dengan memberikan detail Anda:

pscp nameofyourfile.txt [email protected]:/path/where/youwantyourfile

Saya harap ini jelas dan bekerja untuk Anda semua!

SH'
sumber
2
Tautan hanya jawaban yang agak tidak membantu karena mereka mungkin berhenti bekerja di masa depan - cobalah untuk memperluas jawaban Anda dengan benar-benar menjelaskan langkah-langkah dalam video.
djsmiley2k dalam kegelapan