我可以从服务器通过 ssh 连接到本地电脑,但不能从电脑通过 ssh 连接到服务器

我可以从服务器通过 ssh 连接到本地电脑,但不能从电脑通过 ssh 连接到服务器

我可以成功地将本地 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提供更快的速度,并且如果复制中途停止则具有恢复能力。

图片来自 stack overflow (来源见参考文献)

用法:

# 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 到本地计算机的原因。

参考:

相关内容