Linux sunucusundan Windows istemcisine SCP nasıl


23

PuTTY kullanarak ve yerel makineme bir yere (her yerde) bir dosya kopyalamaya çalışıyorum bir Linux makinesine SSHing. Ben anlamaya SCP iş için en iyi aday olduğunu ama gerçekten umurumda değil, bu kadar uzun bir çözüm eserler olarak!

I cdistediğim dosyayı içeren dizine ( app.war) ve aşağıdakini yazın:

scp app.war ./

Her ikisini de boşuna denedim:

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

Belki de SCP'nin bir istemci / sunucu aracı olduğunu ve Windows makinemde bir istemci gerektirdiğini düşünmemi sağladı.

Sadece yanlış sözdizimini mi kullanıyorum? Yoksa üs dışı mıyım? Varsa, hangi seçeneklere sahibim? Şimdiden teşekkürler!


Bu sorunun gerçek cevabı burada: stackoverflow.com/a/23412501/1579667 . Sözdizimiscp some_file user@host:/c/temp
Benj

Ayrıca bkz. Bitvise SSH istemcisi ve sunucusu. Windows için en eski SSH yazılımlarından biridir. İstemci ücretsiz olarak indirilebilir ve kullanımı ücretsizdir.
jww

Yanıtlar:


25

Dosyaları Windows'unuza geri kopyalayabilmeniz için, Windows'ta çalışan SSH arka plan programına / hizmetine ihtiyacınız var, bunun yerine bu aracı kullanmak çok daha kolay, Putty'den oturumları içe aktarabilir, çok basit bir ileri istemciniz olacak Sevdim!

WinSCP :: Windows için ücretsiz SFTP ve FTP istemcisi


Sadece harika bir araç :). Sevdim \ m /
Chaitanya

Komut satırında yaşayan orijinal soruya gerçekten cevap vermiyor. Orijinal sorunun altındaki yorumuma bakın.
Benj

@Benj OP çözüm istedi, WinSCPbu görev için iyi bir çözüm.
alexus

12

Haklısın. SSHD, ana bilgisayarda çalışan SSH sunucu hizmetleridir. SSH istemcilerinden (PuTTy gibi), SCP istemcilerinden ve SFTP istemcilerinden gelen bağlantıları kabul eder.

PuTTY'ninpscp bulunduğu aynı web sitesinden indirebilirsiniz .

Windows makinesinden, aşağıdakine benzer bir komut yürütürsünüz

pscp.exe someuser@somehost.com:/path/to/app.war c:\tmp


2

Bir dosyayı bir Windows makinesine SCP yapmak için, Windows'ta bir SSH / SCP sunucusuna ihtiyacınız vardır.

Windows'ta varsayılan olarak SSH / SCP desteği yoktur. Microsoft OpenSSH for Windows derlemesini ( Sürümler ve İndirmeler ) yükleyebilirsiniz . Windows 10 sürüm 1803 ve daha yeni sürümlerde isteğe bağlı özellik olarak mevcuttur. Ayrıca Windows'un eski sürümlerine manuel olarak da yüklenebilir.

Bu Microsoft OpenSSH yapısını kullanarak Windows'ta SSH / SFTP sunucusu kurmak için bir rehber hazırladım .

Ayrıca bkz. IIS SFTP Windows tarafından yerel olarak destekleniyor mu?


Windows makinesinden Linux sunucusuna SSH olarak girmenize rağmen, dosyayı Linux sunucusundan Windows sunucusuna yüklemeye çalışmak yerine aslında Linux sunucusundan Windows sunucusuna bir dosya indirebilirsiniz.

Windows'tan Linux'a SSH erişiminiz varsa, SCP erişiminiz de (veya daha iyi bir SFTP erişiminiz) vardır.

Mevcut herhangi bir SCP / SFTP istemcisini kullanın.

Sen kullanabilirsiniz WinSCP SFTP / SCP istemcisi hem sahiptir, GUI ve komut satırı arayüzü .

Başka bir alternatif, OpenSSH komutuna benzer bir sözdizimine sahip pscpkomut satırı aracını içeren PuTTY araç kümesidir scp. Ayrıca Windows 10'un en son sürümleri scpyerleşik OpenSSH ile birlikte gelir ve daha eski sürümlere de yüklenebilir.

(WinSCP'nin yazarıyım)


/ Linux için pscp'nin bir sürümü var mı?
codingknob

@codingknob Elbette, birçok dağıtım için "macun" paketi var. pscpİşlevsel olarak OpenSSH ile aynı olmasına rağmen, scpzaten tüm / çoğu dağıtımda kolayca kullanılabilir.
Martin Prikryl

1

Windows 10 şimdi yerleşik OpenSSH'ye sahip. Https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse

Yönetici komut istemi alın

Open PowerShell as an Administrator.

Kullanılabilir sürümleri kontrol edin

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

İstemciyi yükle

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

Sunucuyu yükle

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

Sunucuyu başlatın ve önyüklemede etkinleştirin

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

Windows IP adresinizi bulun

ipconfig

Uzak (Linux) makinenizde IP adresinizi bulun.

ifconfig

Genel bir SSH anahtarı oluşturma

ssh-keygen.exe

Genel anahtarı yerel (Windows) 'dan uzak (Linux) makineye kopyalayın, böylece her zaman bir şifre girmenize gerek kalmaz.

Ssh-copy-id'in şu anda Windows'ta mevcut olmadığını unutmayın.

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

Linux makinenizde de aynısını yapın (Not, ssh-copy-id çalışmıyor)

ssh-keygen # if needed
cat ~/.ssh/id_rsa.pub | ssh USER@WINDOWS_IP 'mkdir -p ~/.ssh && type con >> C:/Users/YOU/.ssh/authorized_keys'
  • Yukarıdaki yöntem benim için işe yaramadı, bu yüzden ortak anahtarı elle SCPing ve C: /Users/YOU/.ssh/authorized_keys dosyasına yapıştırarak sona erdi.

  • Bu hala işe yaramadı, bu yüzden sshd_config dosyasını değiştirmek zorunda kaldım.

    • Not Defteri'ni Yönetici Olarak Aç

    • % Programdata% \ ssh \ sshd_config dosyasını açın

    • Aşağıdaki satırları ekleyin:

        Match User YOU
             AuthorizedKeysFile C:/Users/YOU/.ssh/authorized_keys
  • Yeniden Başlatma

Zaten bir hesabınız yoksa Windows'ta bir şifre oluşturun

System Settings...Sign-in options

- Not, Windows oturum açma ekranını yine de a) 'Oturum açmayı zorunlu kıl' seçeneğini asla ayarlamayacak şekilde ayarlayabilir ve b) 'netplwiz' komutunu kullanarak ve 'Kullanıcılar parola girmelidir ...' onay kutusunun işaretini kaldırabilirsiniz.

Artık Linux makinenizden SSH veya SCP yapabilmeniz gerekir

scp FILE WINDOWS_IP:C:/Users/YOU/Desktop

1

Bunu Windows için Linux Ubuntu alt sistemini kullanarak yapabilirsiniz (bunu bir Windows özelliği olarak etkinleştirmeniz gerekir). Ardından, Microsoft Store'dan (örn. Ubuntu 16.04 LTS) alarak Windows üzerinde çalışan bir Linux terminal istemcisi kullanabilirsiniz. Daha sonra, Linux makinenize uzak olarak ayarlanmış ssh güvenliğiniz varsa, scpyerel Windows Ubuntu terminalinizden (Linux örneğiniz için ayarladığınız kullanıcı adı olarak oturum açtığınızda) şöyle bir şey yapabilirsiniz:

scp -i ~/.ssh/my_rsa username@11.11.11.11:~/myfile ~/ ... RSA şifresini girin

Uzak dosya, Windows tarafından kullanılan yerel Ubuntu dosya sisteminize kopyalanacaktır.

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


1
Windows 10'un en son sürümlerinde (Win32-OpenSSH) scp(.exe)yerleşiktir. Herhangi bir şey kurmanıza gerek yoktur.
Martin Prikryl

-1

Adım 1: pscp indir
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
(Makinenize bağlı olarak ilgili sürümü indirin)

Adım 2: pscp komutlarını tanıyın
Bunu yapmak için, Windows makinenizde komut istemini açın, pscp.exe dosyasını indirdiğiniz dizine gidin ve "pscp" yazın

Adım 3: Linux makinenizden Windows makinesine dosya
aktarın komut isteminizi açın ve ayrıntılarınızı sağlayan aşağıdaki komutu çalıştırın:

pscp usernameofyourlinuxmachine@10.40.000.000:/path/of/your/File/nameofyourfile.txt ./

ve bu komut dosyayı Linux makinenizden Windows makinenizin geçerli dizinine aktaracaktır.

Adım 4: Windows makinenizden Linux makinenize dosya
aktarın komut isteminizi açın ve ayrıntılarınızı sağlayan aşağıdaki komutu çalıştırın:

pscp nameofyourfile.txt usernameofyourlinuxmachine@10.40.000.000:/path/where/youwantyourfile

Umarım bu açıktır ve hepiniz için işe yarar!


2
Yalnızca bağlantı yanıtları, gelecekte çalışmayı durdurabileceklerinden oldukça yararsızdır - videodaki adımları açıklayarak yanıtınızı genişletmeye çalışın.
karanlıkta djsmiley2k
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.