天道酬勤,学无止境

Scp through ssh tunnel opened

I want to send files from machineA which has opened a reverse tunnel with a server. The reverse tunnel connects port 22 on machineA with port 2222 on the server:

autossh -M 0 -q -f -N -o "ServerAliveInterval 120" -o "ServerAliveCountMax 1" -R 2222:localhost:22 userserver@server.com 

If I do:

scp file userserver@server.com:.

then SCP sends the file with a new login over SSH, in my case using public/private key.

But if I do:

scp -P 2222 file userserver@localhost:. 

I get a "connection refused" message. The same happens if I replace 2222 above with the port found with:

netstat | grep ssh | grep ESTABLISHED

How I can send files without opening a new ssh connection (without handshake)?

标签

评论

You can use ControlMaster option in your ssh_config (~/.ssh/config), which will create persistent connection for further ssh/scp/sftp sessions. It is easy as pie:

Host yourhost
  Hostname fqdn.tld
  Port port_number # if required, but probably yes, if you do port-forwarding
  ControlMaster auto
  ControlPath ~/.ssh/master-%r@%h
  ControlPersist 5m

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 是否可以让 Capistrano 通过反向 SSH 隧道进行结账?(Is it possible to do have Capistrano do a checkout over a reverse SSH tunnel?)
    问题 我正在开发一个驻留在公共主机上的应用程序,但我必须将其源代码保存在公司防火墙后面的 Git 存储库中。 我对通过scp部署的缓慢感到非常厌倦(复制整个存储库并在每次部署时通过 SSH 传送它),并希望远程主机只需执行git pull来更新。 问题是防火墙禁止传入的 SSH 连接。 我是否可以设置从我的计算机到部署计算机的 SSH 隧道并使用我的存储库作为git pull的源? 毕竟, git是分布式的,所以我的副本和中央副本一样是有效的存储库。 如果这是可能的,隧道命令和 Capistrano 配置是什么? 我认为隧道看起来像 ssh -R something:deployserver.com:something deploybot@deployserver.com 回答1 Net::SSH 实现远程转发。 我查看了所有 Capistrano 的源代码,但在当前版本中看不到任何对它的引用。 尽管如此,这并不能阻止您在使用 Capistrano 部署之前建立远程转发。 您要做的是分别设置:local_repository和:repository路径。 :local_repository在本地引用以确定在启动连接之前将用于部署的提交。 这留下:repository供远程服务器在连接启动后从中提取。 您可以在此处指定防火墙后存储库的路径。 # deploy.rb set
  • 我想简化 SSH 隧道来做一个 MySQL 转储和 SCP 文件到本地机器(I would like to simplify SSH Tunneling to do a MySQL Dump and SCP the file to local machine)
    问题 服务器设置(假IP) 实用程序 - 1.1.1.1 - 公共 IP 上的 SSH 访问 database2 - 1.1.1.2 - 来自实用程序的私有 IP 上的 SSH 访问 在半定期的基础上,我需要在 database2 上执行 mysqldump 并将其拉到我的本地机器上,以便我可以使用真实数据调试我们的应用程序。 我目前的流程如下: ssh 进入实用程序 ssh 进入数据库 2 执行mysqldump命令从数据库 2 退出 scp 转储文件到实用程序退出实用程序 scp 转储文件到本地机器 不用说,这不是最佳的。 有没有一种更快的方法,可能是通过隧道,我可以使用我的设置? 回答1 你可以 通过 cron 在 database2 上进行转储在实用程序上进行端口转发并立即连接到 database2 摘要:您将通过一个 scp 命令获得转储。 更新: 如果你不能转发或 cron,你可以从实用程序添加对数据库的访问,并从他那里制作 mysqldump。
  • PuTTY 配置相当于 OpenSSH ProxyCommand(PuTTY configuration equivalent to OpenSSH ProxyCommand)
    问题 我只是想使用 PuTTY 与我的服务器建立 SSH 连接。 这些服务器仅允许来自另一个特定服务器(以下示例中的“MySshProxyingServer”)的传入 SSH 连接。 在 Linux 上使用ssh -W命令没有问题。 在 PuTTY 中,我找不到创建此类连接的选项。 Linux 下的示例 ( ~/.ssh/config ): Host MyHostToConnectTo Hostname xx.xx.xx.xx User root Identityfile ~/.ssh/id_rsa ProxyCommand ssh MySshProxyServer -W %h:%p 有人知道如何在 PuTTY 中使用这样的配置吗? 回答1 PuTTY 中的等效项是“本地代理命令”。 您可以使用带有 -nc 开关的 plink.exe 而不是带有-W开关的ssh : “本地代理命令”是: plink.exe %user@%proxyhost -P %proxyport -nc %host:%port 另一种方法是首先使用 PuTTY(或 Plink)的另一个实例通过“MySshProxyServer”打开隧道。 见例如: 如何在 Windows 中使用 PuTTY 创建 SSH 隧道? 我的SFTP/SCP 会话隧道指南。 它用于 WinSCP,但只需在通过隧道连接部分中使用
  • SFTP 和“FTP over SSH”之间的区别(Differences between SFTP and “FTP over SSH”)
    问题 在 C# SSH 文件传输协议 (SFTP) 中寻找 SFTP 客户端时,我遇到了这两个合适的项目 - 一和二。 在尝试了解基础知识时,我遇到了这篇令人困惑的维基百科文章。 SFTP 和 FTP over SSH 有什么区别? 如果不同的话,似乎没有图书馆支持“FTP over SSH”。 回答1 这是区别: SFTP(SSH 文件传输协议)是一种提供文件传输和操作功能的协议。 它可以处理任何可靠的数据流,但通常与 SSH 一起使用 “FTP over SSH”使用常规的旧 FTP 协议,但在客户端和服务器之间放置了一个 SSH 隧道。 您可能找不到“FTP over SSH”库,因为通常隧道是通过运行 SSH 命令设置的,一旦设置,客户端和服务器就不需要知道隧道; 他们只是打开端口并以他们没有隧道的方式传输数据。 顺便说一句,您的另一个选择可能是 .NET 支持的 FTP over SSL (FTPS)。 (请参阅 http://msdn.microsoft.com/en-us/library/system.net.ftpwebrequest.enablessl.aspx。) 回答2 基本上,有以下文件传输协议: FTP – 自 1970 年代以来一直存在的普通旧 FTP 协议。 该首字母缩写词代表“文件传输协议”。 它通常在 TCP 端口 21 上运行。 SFTP –
  • R SSH 隧道 MySQL(R SSH Tunnel MySQL)
    问题 我正在寻找一种方法,允许我使用 SSH 隧道连接到 R 中的 MySQL 服务器(而不是文件); 我假设它需要 RCurl 和 RODBC 的组合,但我似乎无法让它正常工作。 我遇到了这篇文章和这篇文章,它们讨论了使用 SSH 连接到特定文件或表,但我希望将它用作 Shiny 应用程序的一部分,该应用程序将根据用户的输入执行不同的 SQL 查询,这将需要连接到服务器而不是特定文件。 我假设代码看起来像这样x = scp("remote.ssh.host.com", "/home/dir/file.txt", "My.SCP.Passphrase", user="username") ,但是我会用odbcConnect()语句替换"/home/dir/file.txt"部分还是用我要访问的特定数据库的端口号替换它? 编辑:我用于常规 odbcConnect() 的行是odbcConnect(dsn, uid = "userid", pwd = "password") 。 部分问题是,我正在 Windows 上开发它,但它将部署到 Linux 服务器(由其他人处理),所以我正在努力弄清楚我的 server.R 代码中到底需要使用什么连接到数据库。 回答1 好的,所以要在 Windows 上进行测试,要么使用 Cygwin,要么安装 OpenSSH,这样您就可以在 Windows
  • I would like to simplify SSH Tunneling to do a MySQL Dump and SCP the file to local machine
    Server setup (fake IPs) utility - 1.1.1.1 - SSH access on public IP database2 - 1.1.1.2 - SSH access on private IP from utility On a semi-regular basis I need to do a mysqldump on database2 and pull that down to my local machine so I can debug our app with real data. My current process is as follows: ssh into utility ssh into database2 execute mysqldump command exit from database2 scp dump file down to utility exit utility scp dump file down to local machine Needless to say this is not optimal. Is there a quicker method, possibly via tunneling, that I could use given my setup?
  • How to scp with a second remote host
    I wonder if there is a way for me to SCP the file from remote2 host directly from my local machine by going through a remote1 host. The networks only allow connections to remote2 host from remote1 host. Also, neither remote1 host nor remote2 host can scp to my local machine. Is there something like: scp user1@remote1:user2@remote2:file . First window: ssh remote1, then scp remot2:file .. Second shell: scp remote1:file . First window: rm file; logout I could write a script to do all these steps, but if there is a direct way, I would rather use it. Thanks. EDIT: I am thinking something like
  • 是否有适用于 Linux 的 WinSCP 等价物? [关闭](Is there any WinSCP equivalent for linux? [closed])
    问题 关闭。 此问题不符合 Stack Overflow 准则。 它目前不接受答案。 想改善这个问题吗? 更新问题,使其成为 Stack Overflow 的主题。 6年前关闭。 改进这个问题 我喜欢 Windows 版的 WinSCP。 什么是 linux 的最佳等效软件? 我尝试使用sshfs在我的本地机器上挂载远程文件系统,但它不像简单地启动一个GUI那样用户友好,而且它似乎需要在客户端机器上访问root权限,这不是很方便。 当然命令行工具如 scp 是可能的,但我正在寻找一个简单的 GUI。 回答1 如果您使用 Gnome,您可以前往: Places -> Connect to Server in nautilus并选择 SSH。 如果您运行并配置了 SSH 代理,则不会询问密码! (这与 Nautilus 中的 sftp://root@servername/directory 相同) 在 Konqueror 中,您只需键入:fish://servername。 根据 Mike R:在 Ubuntu Unity 14.0.4 中,其位于菜单中的文件 > 连接到服务器或侧栏中的网络 > 连接到服务器 回答2 Filezilla 可用于 Linux。 如果您使用的是 Ubuntu: sudo apt-get install filezilla 否则,您可以从 Filezilla
  • 文件传输协议汇总
    文章目录 一、FTP(File Transfer Protocol 文件传输协议)(一)FTP 通讯端口(二)FTP 支持两种连接模式(三)缺点(四)FTP 命令(五)FTP 响应码(六)FTP 术语 二、HTTP(超文本传输协议)三、FTPS(基于 SSL 的 FTP)四、SFTP(安全文件传输协议)(一)优点(二)缺点(三)SFTP 和 FTPS 对比(四)支持 FTPS 和 SFTP 的服务器软件 五、HTTPS(基于 SSL 的 HTTP)六、SCP(安全副本)(一)命令参数 七、WebDAV(Web分布式创作和版本控制)八、WebDAVS九、TFTP(临时文件传输协议)十、AS2(Applicability Statement 2)十一、OFTP(Odette文件传输协议)十二、AFTP(加速文件传输协议)十三、TCP(传输控制协议)(一)TCP 与 UDP 的基本区别(二)TCP 与 UDP 的应用场景 十四、UDP(User Datagram Protocol)十五、FTP over SSH2十六、TFTP (简单文件传输协议)(一)TFTP协议的优势(二)TFTP协议与FTP协议的不同点(三)命令参数 一、FTP(File Transfer Protocol 文件传输协议) 目前在网络上,如果你想把文件和其他人共享。最方便的办法莫过于将文件放 FTP 服务器上
  • 如何为各种系统编写多个 ssh 和 scp 命令的脚本(How to script multiple ssh and scp commands to various systems)
    问题 我想编写一系列涉及多个 ssh 和 scp 调用的命令。 每天,我发现自己手动执行此任务: 从本地系统,ssh 到 SYSTEM1 SYSTEM1 上的 mkdir /tmp/data 从 SYSTEM1, ssh 到 SYSTEM2 SYSTEM2 上的 mkdir /tmp/data 从 SYSTEM2、SSH 到 SYSTEM3 从 SYSTEM3:/data 到 SYSTEM2:/tmp/data 的 scp 文件退出到SYSTEM2 从 SYSTEM2:/data 和 SYSTEM2:/tmp/data 到 SYSTEM1:/tmp/data 的 scp 文件 rm -fr SYSTEM2:/tmp/数据退出到SYSTEM1 从 SYSTEM1:/data 和 SYSTEM1:/tmp/data 到 LOCAL:/data 的 scp 文件 rm -fr SYSTEM1:/tmp/数据 我每天至少执行一次此过程,在不同系统之间切换大约需要 5-10 分钟,然后再进行清理。 我真的很想在 bash 脚本中自动执行此操作,但到目前为止我的业余尝试都没有成功。 正如您可能怀疑的那样,系统通信受到限制,这意味着 LOCAL 只能看到 System1,System2 只能看到 System1 和 System3,system3 只能看到 system2,等等。您明白了。
  • Java中的简单SSH隧道[关闭](Simple SSH Tunnel in Java [closed])
    问题 关闭。 这个问题需要更加集中。 它目前不接受答案。 想改善这个问题吗? 更新问题,使其仅通过编辑这篇文章来关注一个问题。 去年关闭。 改进这个问题 我想用 Java 创建一个 SSH 隧道。 我在另一篇文章中注意到了很多 Java SSH 库。 在我深入研究每个选项之前,也许有人可以给我一些他们是如何做到的代码片段,或者至少告诉我哪个客户端库最有效。 我只需要隧道。 我不需要文件传输、终端仿真等内容。是否有几行简单的代码可以转发服务器上的端口以在我客户端的本地主机适配器上工作? 理想情况下,客户端和服务器都将使用 Java,但我现在只使用客户端。 回答1 好吧,正如在另一个问题中所指出的,JSch 确实是一个不错的选择,这里有几个例子。 PortForwardingL.java 类可能是一个很好的起点。 回答2 您可以使用多个库执行此操作。 我最喜欢的是 MindTerm 包中的 ssh 库, http://linuxmafia.com/pub/java/ISNetworks-MindTerm-1.2.1-SCP3.tar.gz 您可以像这样打开隧道连接, SSHSocketFactory fact = new SSHSocketFactory(sshHost, sshPort, new SSHPasswordAuthenticator(sshUser
  • 您如何使用 ssh(socks...)使用 php 的 CURL 代理服务器?(How do you proxy though a server using ssh (socks…) using php’s CURL?)
    问题 我想使用 ssh,像这样: ssh -D 9999 username@ip-address-of-ssh-server 但是在 php CURL 中,但我真的不知道如何做到这一点? 我注意到“CURLPROXY_SOCKS5”是 php 站点中的一种类型,但我猜这行不通,因为它不是真正的袜子,而是 ssh ...... 我目前正在使用此代码: curl_setopt($ch, CURLOPT_PROXY, ‘ip:port'); 但是我使用的是免费代理,而且速度很慢且不可靠,我还通过此代理发送敏感信息。 这就是为什么我想通过我信任的保存服务器代理它,但我只有 ssh 设置,它无法托管适当的代理。 回答1 您可以在 PHP 脚本中同时使用 libssh2 和 curl。 首先,您需要从 PECL 站点获取 ssh2 库。 或者,PEAR 包也支持 SSH2。 安装后,您可以阅读有关设置隧道的 ssh2 文档。 然后,您可以在脚本中设置隧道。 在脚本中设置隧道后,您可以指定 CURL 代理。 执行 CURL 操作。 释放隧道资源并关闭脚本中的连接。 我不是 PHP 专家,但这里有一个粗略的例子: <?php $connection = ssh2_connect(ip-address-of-ssh-server, 22); ssh2_auth_pubkey_file(
  • R SSH Tunnel MySQL
    I'm looking for a way that will allow me to use an SSH Tunnel to connect to a MySQL Server (as opposed to a file) within R; I'm assuming it'll require a combination of RCurl and RODBC, but I can't seem to get it to work properly. I came across this post and this post that talk about utilizing SSH to connect to specific files or tables, but I'm hoping to use it as part of a Shiny app that will execute different SQL queries based on input from the user, which would require connecting into the server as opposed to specific files. I'm assuming the code would look something along these lines x =
  • 如何通过 SSH 在 Windows 中挂载远程 Linux 文件夹? [关闭](How do I mount a remote Linux folder in Windows through SSH? [closed])
    问题 关闭。 这个问题是题外话。 它目前不接受答案。 想改善这个问题吗? 更新问题,使其成为 Stack Overflow 的主题。 9年前关闭。 改进这个问题 我是一名盲人学生,目前正在上系统管理员/shell 编程课程。 尽管 ssh 可以很好地执行 ls、pwd 等命令,但编辑器不能很好地与我的屏幕阅读器和 ssh 会话配合使用。 我想知道是否可以通过 ssh 挂载 Linux 文件夹,使其显示为 Windows 驱动器? 通过这种方式,我可以使用可访问的软件编辑我需要的任何文件,而不必经常使用 SCP 来回发送文件。 回答1 早在 2002 年,Novell 就开发了一些名为 NetDrive 的软件,可以将 WebDAV、FTP、SFTP 等共享映射到 Windows 驱动器盘符。 它现在是废弃软件,因此不再维护(并且在 Novell 网站上不可用),但可以免费使用。 我通过搜索“netdrive.exe”找到了很多可供下载的文件,我实际上下载了一些文件并比较了它们的 md5sum 以确保我得到的是一个通用的(希望是安全的)版本。 2017 年 11 月 10 日更新SFTPNetDrive 是来自原始 netdrive 项目的当前项目。 他们免费供个人使用: 我们免费提供 SFTP Net Drive 供个人使用 他们在网站上也有付费选项。 回答2 Dokan
  • SSH访问内网/内网穿透的几种情景详解
    SSH访问内网/内网穿透的几种情景详解 文章目录 SSH访问内网/内网穿透的几种情景详解0x01 背景0x02 网络拓扑0x03 基础知识0x04 工具列表0x041 本地PC0x042 企业服务器 0x05 ssh端口转发的基本操作以及通过企业网络访问网站0x051 适用情况0x052 步骤1. 执行ssh动态转发命令2. 浏览器配置代理 0x053 优化1. 速度优化2. bug调试3. 不打开终端4. 添加公钥访问,减少密码输入,并提高安全性5. 保存为config,减少记忆量6. 防止中断7. 自动重播8. 制作快捷方式(Windows) 0x06 访问内网服务器ssh优化继续优化 0x07 本地访问企业内部数据库端口0x071 保持服务器名称不变1. 修改hosts文件2. 修改.ssh/config文件3. 建立连接 0x072 扩展本地端口转发(连到远程桌面) 0x08 让服务器能访问本地测试环境的数据库0x09 使用VSCode远程编程调试0x10 文件传输0x11 映射服务器文件夹0x111 MacOSX/Linux0x112 Windows 0x12 访问同在远程的同事的本地服务参考 0x01 背景 疫情期间远程办公,自然少不了需要连接到公司内网的服务器跑程序。SSH是一种常用的连接到内网的方式,几乎能做到所有连接内网的操作
  • NetSarang Xshell的功能
    NetSarang Xshell是一款最好用的Linux远程连接工具,最强大的SSH终端管理器、SSH远程连接主机客户端 。Xshell,轻松管理远程服务器,会话管理器,支持多选项卡管理主机,支持远程协议Telnet、Rlogin、SSH/SSH PKCS#11、SFTP、Serial,具有Unicode编码支持、动态端口转发、自定义键盘映射、VB脚本支持等。 Xshell 7功能: 1.可继承会话属性 可以在会话文件夹级别设置会话属性。在会话文件夹下创建的任何新会话都将继承其属性。会话文件夹有效地充当新会话文件的模板。 2.链接栏中的快捷方式支持。 添加到链接栏的会话现在支持快捷方式,并且其行为类似于快捷方式。因此,对会话所做的任何更改也将反映为快捷方式。 3.选项卡管理器 选项卡管理器以树状结构显示所有选项卡和选项卡组,便于组织选项卡。当单个选项卡组有多个会话时,选项卡可能隐藏在Xshell的窗口中。使用选项卡管理器,您可以轻松查看、移动和管理这些选项卡。 4.脚本录制 根据输入(发送)和输出(预期)自动生成脚本。使用生成的脚本作为基础,创建更复杂、多用途的脚本。 5.多会话脚本 将多个选项卡作为应用脚本的目标。(此功能仅在单进程模式下受支持)。 6.尺寸B选择 B选择=xsh.Session.SelectTabName(“会话名称”) 如果(b选择),则 xsh.Screen
  • 在DELPHI 2010中通过SSH进行FTP(SFTP)(FTP Over SSH (SFTP) In delphi 2010)
    问题 我正在编写一个简单的Delphi App,将一些文件上传到SFTP服务器。 我以为我可以使用TIdFTP Indy客户端,但是它接缝了,因为它们不是SSH FTP(SFTP)的选项,没有人知道任何支持SSH FTP(SFTP)的Delphi 2010免费/开源组件)。 由于安全原因,我无法使用Active X控件,因此请不要使用Active X解决方案进行响应。 谢谢您的帮助, 凯尔 回答1 SFTP和“基于SSH的FTP”是两个独立的事物,都不涉及SSL(如其他人所建议的)。 SFTP是SSH的子协议,而“通过SSH的FTP”是通过SSH连接和端口转发通过隧道传输的FTP的好/不好。 无论哪种方式,您追求的都是Delphi SSH库。 我无法找到用于Delphi的免费SSH库,并结束了购买SecureBlackbox(http://www.eldos.com/)的工作,尽管SecureBridge(http://www.devart.com)看上去也不错,但它还是很棒的非常好。 回答2 1)SFTP不是基于FTP的FTP。 在这里阅读讨论。 2)对于SFTP,没有免费的Delphi组件。 您可以将我们的SFTP客户端和服务器组件用于Delphi(SecureBlackbox产品的一部分),这是受支持和维护的商业解决方案。 回答3 我一直在使用PuTTY的SCP命令行实用程序
  • SSH - 一种无需打开单独的 SFTP 会话即可传输文件的方法?(SSH - a way to transfer files without opening a separate SFTP session?)
    问题 不是真正的编程问题,但与许多程序员有关...... 假设我打开了到另一台计算机的 SSH 会话。 远程:html avalys$ ls Welcome.msg index.html readme.txt 远程:html avalys$ 是否有任何命令可以在我的远程 shell 中键入,该命令会立即将当前目录中的文件之一(例如welcome.msg)传输到我的本地计算机,即 远程:html avalys$ stransferwelcome.msg 将 /home/avalys/html/welcome.msg 获取到welcome.msg /home/avalys/html/welcome.msg 100% 23KB 23.3KB/s 00:00 远程:html avalys$ 我所知道的唯一方法是在 SSH 会话中打开一个并行的 SFTP 会话和 CD 到我当前的目录,这在远程管理服务器时是一个真正的 PITA。 编辑:我知道使用反向 sftp/scp 连接的可能性,但这涉及更多的输入。 如果我能只输入某个命令的名称(例如“stransfer”)和我想要传输的文件,并且让它正常工作,那就太好了。 回答1 您可以设置这样的反向传输连接 w/ ssh -Rport:127.0.0.1:22 user@host 为了scp回来。 使用scp user@host:port访问它。
  • 通过 SSH 会话将文件从远程主机传送到本地主机的最佳方法是什么?(Which is the best way to bring a file from a remote host to local host over an SSH session?)
    问题 通过 ssh 连接到远程主机时,我经常想将该系统上的文件带到本地系统进行查看或处理。 有没有办法复制文件而无需 (a) 打开新终端/暂停 ssh 会话 (b) 再次向本地或远程主机进行身份验证NAT路由器? 目标是尽可能多地利用当前状态:两台机器之间存在连接,我在两台机器上都经过身份验证,我在文件的工作目录中---所以我不必打开另一个终端并将远程主机和路径复制并粘贴进去,这就是我现在所做的。 最好的解决方案也不需要在会话开始之前进行任何设置,但是如果设置是一次性的或能够自动化,那么这是完全可以接受的。 回答1 zssh(openssh 上的 ZMODEM 包装器)完全符合您的要求。 安装 zssh 并使用它代替 openssh(我假设您通常使用它) 您必须在两个系统上都安装 lrzsz 软件包。 然后,将文件zyxel.png从远程传输到本地主机: antti@local:~$ zssh remote Press ^@ (C-Space) to enter file transfer mode, then ? for help ... antti@remote:~$ sz zyxel.png **B00000000000000 ^@ zssh > rz Receiving: zyxel.png Bytes received: 104036/ 104036 BPS
  • 如何使用SSH从服务器下载文件(在Windows上使用PuTTY)(How to download a file from my server using SSH (using PuTTY on Windows))
    问题 当我尝试将文件从服务器下载到计算机上时,实际上是将文件下载到服务器上。 (请注意,在键入此命令之前,我已经通过SSH进入服务器。我已经在YouTube上观看了教程,人们使用其终端时没有通过SSH进入任何特定的服务器,但是我认为我无法在Windows上使用PuTTY来完成此操作?) scp -r -P2222 kwazy@mywebsite.com:/home2/kwazy/www/utrecht-connected.nl ~/Desktop/ 问题是我指定下载文件的位置仅为~/Desktop/ 这将在服务器中创建一个名为“ Desktop的文件夹,而不是将文件复制到本地桌面上。 非常感谢您的协助。 更新: 我可以在Linux上使用此命令。 我已成功将文件夹下载到桌面上: 我仍然需要了解如何在Windows计算机上执行此操作。 回答1 无法从PuTTY窗口中打开的SSH会话启动向本地Windows传回文件或从本地Windows向本地Windows传回文件的方法。 尽管PuTTY支持连接共享。 尽管您仍然需要运行兼容的文件传输客户端(pscp或psftp),但不需要新的登录名,它会自动(如果启用)利用现有的PuTTY会话。 要启用共享,请参阅: 在PuTTY工具之间共享SSH连接。 即使没有连接共享,您仍然可以从Windows命令行使用psftp或pscp 。