我可以成功地将本地 PC ssh 连接到不同网络中的远程服务器。但反向操作不起作用(服务器到本地 PC)。我需要将大型文件从服务器传输到本地 PC,为此我想使用 scp,但在此之前我认为第一步是让 ssh 正常工作。请指导。
答案1
您不需要服务器通过 ssh 连接到您的 PC 即可将文件从服务器发送到您的 PC。您需要做的就是输入 @steeldriver 在他的评论中所说的内容(即使用scp user@server:/path/to/bigfile somewhere/on/pc/
)。
如果由于某种原因您仍然需要通过 ssh 进入您的 PC,您可以尝试确保已OpenSSH server
安装/正在安装它。
(这些说明适用于 Windows,因为我假设您使用的电脑的操作系统就是 Windows,因为您使用的是 winscp)
在开始菜单中搜索Manage optional features
,单击顶部结果->Add a feature
在现在打开的设置页面顶部选择-->在搜索框中输入OpenSSH Sever
-->选择OpenSSH Server
-->单击install (1)
左下角。
安装完成后,您需要以管理员身份打开 Powshell,然后输入Start-Service sshd
以启动它,或Set-Service -Name sshd -StartupType 'Automatic'
使其自动启动。
欲了解更多信息,您可以查看此处的 Microsoft 教程。
这应该允许您在 Windows 10 PC 上接收 SSH 连接。
确保 OpenSSH 服务通过 Windows 防火墙。
另外,我只想说,您不需要使用第三方软件(如 winscp)在 Windows 上使用 ssh/scp,因为 OpenSSH 已经成为 Windows 的一部分好几年了。您可以在 Windows cmd 中使用 ssh,就像在 Linux 终端中一样。(例如ssh <user>@<ip-address>
)
答案2
我建议使用rsync
超过scp
。
rsync
提供更快的速度,并且如果复制中途停止则具有恢复能力。
用法:
# To copy files from a remote server to local machine
# =======> answer to your question <========================================
rsync -av [email protected]:/path/to/resource /path/to/dst/on/local/machine
# To copy files from local machine to remote server
rsync -av /path/to/dst/on/local/machine [email protected]:/path/to/resource
# Go through manual pages for more information on rsync
man rsync
此外,如果您使用本地 ISP 上网,您可能会获得一个本地 IP 地址(例如 192.168.0.{0-254}),而服务器有一个固定的 IP 地址(例如 100.172.34.26)。
因此,目的地具有唯一的位置,可以从任何 IP 访问,但本地计算机 IP 地址对整个互联网是屏蔽的(未暴露),这就是您无法从远程服务器 ssh 到本地计算机的原因。