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

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

我正在使用 PuTTY 通过 SSH 连接到一台 Linux 机器,并尝试将文件复制到我的本地机器的某个地方(任何地方)。我数字SCP 是这项工作的最佳人选,但其实并不关心,只要解决方案有效!

cd进入包含我想要的文件的目录 ( app.war) 并输入以下内容:

scp app.war ./

我两种方法都试过了,但都无济于事:

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

这让我想到,也许 SCP 是一个客户端/服务器工具,需要我的 Windows 机器上有一个客户端,但我的 Windows 机器上没有客户端。

我是不是使用了错误的语法?还是我完全偏离了基础?如果是这样,我有什么选择?提前谢谢!

答案1

为了将文件复制回 Windows,您需要在 Windows 上运行 SSH 守护程序/服务,使用这个工具更容易,它能够从 Putty 导入会话,非常简单的转发客户端,您会喜欢它的!

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

答案2

Windows 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 上创建密码

System Settings...Sign-in options

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

现在你应该可以从你的 Linux 机器上使用 SSH 或 SCP

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

答案3

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

您可以pscp从同一网站下载油灰已托管。

在 Windows 机器上,你可以执行类似如下的命令

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

答案4

如果其他人处于非常封闭的环境中,甚至无法安装PuTTY,那么我会这样做:

将文件从 Windows 传输到 Linux(CentOS 7)

在我的 Windows 计算机上,打开命令提示符

scp [local file to send to Linux] [Linux username]@[Linux computer]:[Linux path to save to]

例子:

scp log.txt [email protected]:/home/ryanLinuxUser
scp log.txt [email protected]:/home/ryanLinuxUser

将文件从 Linux 传输到 Windows

再次在我的 Windows 计算机上,打开命令提示符

scp [Linux username]@[Linux computer]:[Linux path to existing file] [local Windows path to save to]

例子:

scp [email protected]:/home/ryanLinuxUser/log.txt log.txt 
scp [email protected]:/home/ryanLinuxUser/log.txt log.txt 

相关内容