如何从Linux服务器到Windows客户端进行SCP


23

我正在使用PuTTY SSH进入Linux计算机,并尝试将文件复制到任何地方(任何地方)到我的本地计算机。我推测 SCP是这个职位的最佳人选,但真的不关心,只要解决方案的工作!

cd进入包含我要的文件(app.war)的目录,然后键入以下内容:

scp app.war ./

我都尝试都无济于事:

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

我想到SCP可能是一个客户端/服务器工具,并且需要Windows计算机上的一个客户端(该客户端不存在)。

我使用的语法错误吗?还是我偏离基地?如果是这样,我有什么选择?提前致谢!


这个问题的真正答案在这里:stackoverflow.com/a/23412501/1579667。语法为scp some_file user@host:/c/temp
Benj

另请参阅Bitvise SSH客户端和服务器。它是Windows最早的SSH软件之一。该客户端可以免费下载并免费使用。
jww

Answers:


25

为了将文件复制回Windows,您需要在Windows上运行SSH守护进程/服务,使用此工具要容易得多,它可以从Putty(非常简单的向前客户端)导入会话爱它!

WinSCP ::适用于Windows的免费SFTP和FTP客户端


只是一个很棒的工具:)。喜欢它\ m /
Chaitanya

它并不能真正回答最初的问题,该问题一直存在于命令行中。请参阅下面原始问题的评论。
2015年

@Benj OP寻求解决方案,WinSCP对于该任务而言是一个很好的解决方案。
alexus

12

你是对的。SSHD是在主机上运行的SSH服务器服务。它接受来自SSH客户端(例如PuTTy),SCP客户端和SFTP客户端的连接。

您可以pscp从托管PuTTY的网站下载。

在Windows机器上,您将执行类似于以下命令

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


2

要将文件SCP传输到Windows计算机,则需要Windows上的SSH / SCP服务器。

Windows默认情况下不支持SSH / SCP。您可以为Windows安装Microsoft构建的OpenSSH发行和下载)。它在Windows 10版本1803和更高版本中作为可选功能提供。也可以在较早版本的Windows上手动安装它。

我已经准备了使用此Microsoft OpenSSH构建在Windows上设置SSH / SFTP服务器的指南。

另请参见Windows是否本身支持IIS SFTP?


尽管从Windows机器SSH进入Linux服务器时,实际上您可以从Linux服务器将文件下载到Windows服务器,而不是尝试将文件从Linux服务器上传到Windows服务器。

在从Windows到Linux的SSH访问中,您也有SCP访问(甚至更好的是SFTP访问)。

使用任何可用的SCP / SFTP客户端。

您可以使用同时具有GUI命令行界面的WinSCP SFTP / SCP客户端

PuTTY工具集是另一种选择,它包括pscp命令行工具,其语法类似于OpenSSH scp命令。Windows 10的最新版本还scp内置了OpenSSH ,它也可以安装在较旧的版本上。

(我是WinSCP的作者)


OSX / Linux是否有pscp版本?
–codingknob

@codingknob当然,有许多发行版的“ putty”包。尽管的pscp功能与OpenSSH相同scp,但已经可以在所有/大多数发行版中使用。
Martin Prikryl

1

视窗10目前已OpenSSH的内置的。 https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse

获取管理员命令提示符

Open PowerShell as an Administrator.

检查可用版本

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

安装客户端

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

安装服务器

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

启动服务器并在启动时启用

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

查找您的Windows IP地址

ipconfig

在您的远程(Linux)计算机上,找到您的IP地址。

ifconfig

创建一个公共SSH密钥

ssh-keygen.exe

将公钥从本地(Windows)复制到远程(Linux)计算机,这样您就不必一直输入密码。

请注意,ssh-copy-id目前在Windows上不可用。

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

在Linux机器上执行相同的操作(请注意,ssh-copy-id无效)

ssh-keygen # if needed
cat ~/.ssh/id_rsa.pub | ssh USER@WINDOWS_IP 'mkdir -p ~/.ssh && type con >> C:/Users/YOU/.ssh/authorized_keys'
  • 上面的方法对我不起作用,因此我最终手动将公共密钥置于SCP上并将其粘贴到C:/Users/YOU/.ssh/authorized_keys文件中。

  • 那仍然没有用,所以我不得不修改sshd_config文件。

    • 以管理员身份打开记事本

    • 打开%programdata%\ ssh \ sshd_config

    • 添加以下行:

        Match User YOU
             AuthorizedKeysFile C:/Users/YOU/.ssh/authorized_keys
  • 重启

如果您还没有Windows,请在Windows上创建一个密码

System Settings...Sign-in options

-请注意,您仍然可以通过以下方法禁用Windows登录屏幕:a)将“需要登录”选项设置为从不,以及b)使用“ netplwiz”命令并取消选中“用户必须输入密码...”复选框。

现在您应该能够从Linux机器上进行SSH或SCP

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

1

您可以通过使用Windows的Linux Ubuntu子系统来实现此目的(您需要将其作为Windows功能启用)。然后,您可以通过从Microsoft商店获取Windows上运行的Linux终端客户端(例如Ubuntu 16.04 LTS)来使用它。然后,如果您已设置ssh安全性以远程访问Linux机器,则可以scp从本地Windows Ubuntu终端(以您为Linux实例设置的用户名登录时),如下所示:

scp -i ~/.ssh/my_rsa username@11.11.11.11:~/myfile ~/ ...输入RSA密码

远程文件将被复制到Windows使用的本地Ubuntu文件系统中,例如

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


1
在Windows 10的最新版本中,scp(.exe)内置(Win32-OpenSSH)。您不需要安装任何东西。
马丁·普里克里

-1

步骤1:下载pscp
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
(根据您的计算机下载相应的版本)

步骤2:熟悉pscp命令
为此,请在Windows计算机中打开命令提示符,转到已下载pscp.exe的目录,然后键入“ pscp”

第3步:将文件从Linux机器传输到Windows机器,
打开命令提示符,然后在提供您详细信息的命令下面运行:

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

并且此命令会将文件从Linux机器传输到Windows机器的当前目录

步骤4:将文件从Windows机器传输到Linux机器,
打开命令提示符,然后在提供您详细信息的命令下面运行:

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

我希望这很清楚,并为大家服务!


2
仅链接的答案很有帮助,因为它们将来可能会停止工作-尝试通过实际解释视频中的步骤来扩大答案。
djsmiley2k在黑暗中,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.