如何使用命令或 shell 脚本将文件从 SecureCRT Linux 服务器复制到 Windows 桌面?

如何使用命令或 shell 脚本将文件从 SecureCRT Linux 服务器复制到 Windows 桌面?

请不要建议使用 WinSCP、PuTTY 等工具,因为我已经scp在 Linux 服务器上尝试了以下命令,但仍然没有得到输出:

scp /file/to/send username@remote:/where/to/put
scp username@remote:/file/to/send /where/to/put
scp username@source:/location/to/file username@destination:/where/to/put

我对这些命令不太了解,所以如果我错了,请纠正。

答案1

这很简单,但你可能有点困惑。首先,这是你想要的吗?Linux 服务器 --> Win PC

错误:SecureCRT 不是服务器,而是一个(最好的)远程访问软件。另外,当您在 Linux 服务器上键入显示的命令语句时,您正在尝试从其 ssh 客户端软件(在 Linux 服务器上)连接到 ssh 服务器(Win PC)-> 您可能没有在 Win PC 上安装 ssh 服务器,因此这是一个概念错误。

SCP 是一种通过 SSH 进行的协议,因此您需要在一台机器上安装 SSH 服务器,在另一台机器上安装 SSH 客户端。您始终需要一个客户端和一个服务器 SSH 对。您可以选择 1 台设备作为 SSH 服务器,但另一台设备必须是 SSH 客户端。SSH 服务器是一种等待来自 SSH 客户端的请求的服务,因为 SSH 是一种基于客户端-服务器工作的协议。当您键入 SCP 传输命令时,您正在使用安装在这台机器上的 SSH 客户端软件(可以是台式电脑或其他服务的服务器,但始终充当 SSH 的客户端),而远程机器(另一侧)充当 SSH 的服务器。在您选择充当服务器的机器上安装服务器软件,在客户端机器上安装客户端软件,但您可以在同一台机器上安装这两种类型的软件。通常,您会在 Linux 服务器上安装 SSH 服务器软件,以便从其他计算机(PC ssh 客户端)进行远程访问,同时您还会在 Linux 服务器上安装 SSH 客户端软件,以便可以选择连接到其他计算机(充当 ssh 服务器)。在 PC 上,您通常只安装 ssh 客户端软件,但如果您愿意,也可以安装 ssh 服务器软件。

Linux 服务器可以是 SSH 服务器或 SSH 客户端 -> 您选择其角色。此处的命令仅针对一种选项,即 Linux 服务器作为 SSH 服务器。

1)Linux服务器作为SSH服务器(这是最佳选择,因为 openssh 已安装在 Linux 服务器上)=> 在这种情况下,Win PC 必须是 SSH 客户端。您需要在 Linux 上安装 SSH 服务器软件,在 Win PC 上安装 SSH 客户端软件。例如,您可以安装 openssh 服务器和 opensshclient(是的,也可用于 Win,免费)。

Linux 服务器(SSH 服务器)(如果尚未安装)

Debian,Ubuntu -># apt install openssh-server

RedHat、Centos、Fedora -># yum install openssh-server

检查ssh服务器状态:

# systemctl status sshd

或者# service sshd status其他 Linux 命令

如果没有开始:

# systemctl start sshd

WinPC(SSH 客户端):

要求:

  • Win 10 1809或更高版本。
  • Powershell(已安装并启用)作为管理员
  • OpenSSH 客户端已安装。您只需要启用它。

从 ADMIN cmd 或 shell(命令提示符 -> 右键单击​​ -> 以管理员身份运行):

 C:\> powershell
 Windows PowerShell  Copyright (C) Microsoft
 Corporation. All rights reserved.  Try the new cross-platform
 PowerShell https://aka.ms/pscore6
 
 PS C:\>
 PS C:\> Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

Name  : OpenSSH.Client~~~~0.0.1.0
State : Installed                --> the OpenSSHclient is installed and enabled

Name  : OpenSSH.Server~~~~0.0.1.0
State : NotPresent               --> the OpenSSHserver is disabled

在这种情况下,您的 openssh 客户端正常!但只有当您的 openssh 客户端“不存在”时,您才应该执行此步骤:

PS C:\> Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

Path :
Online : True
RestartNeeded : False

下一步是重新启动 Win PC。

重启后,检查新的 openssh 客户端状态: (从 ADMIN cmd 或 powershell)

PS C:\> Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

Name  : OpenSSH.Client~~~~0.0.1.0
State : Installed

Name  : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

2) 现在我们有了Linux服务器和Win PC OK。

因为我们选择 Linux 作为 SSH 服务器,WinPC 作为客户端,所以我们无法直接从 Linux 向 Win PC 发送文件。我们需要从服务器检索文件,因此客户端 SSH 将连接到 SSH 服务器并要求其复制文件。在实践中,效果是一样的,但我们必须从 SSH 客户端(Win PC)输入命令。以下是说明:

数据示例:

SSH 服务器用户名: 哈利 (Linux 服务器中的有效用户)

Linux服务器用户名密码: 测试(哈利的密码)

SSH 服务器 IPv4 @地址: 200.1.1.1 (Linux 服务器)

SSH 服务器端口: 5555 (如果您更改了默认端口 22) 要传输的 Linux 服务器文件: /mandrake/star.txt

Win PC下载文件夹: C:\用户\Harry\下载>

在 Win PC(openssh 客户端)上:

打开 cmd 并转到下载文件夹

C:\Users\Harry> cd downloads
C:\Users\Harry\Downloads>
C:\Users\Harry\Downloads> scp -P 5555 [email protected]://mandrake/star.txt
    
Hi, I am the Linux server!!!
[email protected]'s password: test
    
star.txt                      100% 2998   304.1KB/s   00:00
    
C:\Users\Harry\Downloads>

瞧!!!使用命令行进行 SCP 传输非常专业(在 Win 和 Linux 中均免费).... 自由、开放网络........

相关内容