如何获取使用 ssh 连接的远程服务器上的文件?

如何获取使用 ssh 连接的远程服务器上的文件?

我使用 SSH 连接到我的大学计算机,如下所示:

sudo ssh [email protected]

但是一旦连接,我就无法使用 wget 下载服务器上的任何文件,如下所示:

server_user@server:~$ wget http://example.com/somefile

如果我这样做,我会收到以下错误:

--2020-07-28 10:14:46--  https://example.com/somefile
Resolving example.com (example.com)... failed: Name or service not known.
wget: unable to resolve host address ‘example.com’

另外,我无法在远程服务器上使用 pip 安装任何软件包。这些事情我该怎么做呢?提前致谢 :)

PS:当然地址不是了example.com。我只是出于示例目的暂时使用它。这是一个真实的 http 地址,我可以使用 wget 从该地址本地下载文件,但在服务器上执行此操作会引发上面报告的错误。

答案1

要知道精确的问题我需要有关服务器的更多详细信息。但实际上这只是归结为 DNS 问题。

联系该服务器的管理员并提及 DNS 存在问题并解决A失败AAAA的记录example.com

临时解决办法:替换example.com为服务器的IP。
(在你的电脑上运行 aping example.com将显示你的ip)

编辑:您提到安装 python 模块(使用 )时也遇到问题pip。出于同样的原因,pip 会尝试从只知道主机名而不知道 IP 的网站下载它们。

编辑2:您也可以自己做一些研究来了解为什么解决失败,但我会在这里小心!
一些管理员喜欢用户提供一些帮助,而另一些管理员可能会在用户开始窥探时感到非常生气。
当有疑问时:不要这样做。
无论如何,这里有一些命令可以为您提供更多信息:

  • dig -t A example.com @8.8.8.8 | grep -v '^;' | grep A(应该显示 example.com 的 IP)
  • dig -t A example.com | grep -v '^;' | grep A(应该显示相同)
  • resolvectl status | grep Server(应该显示你大学的DNS服务器)
  • systemctl status systemd-resolved(应该是活跃的)
  • journalctl -u systemd-resolve(不应包含错误)

答案2

服务器没有 DNS 解析 - 也许它故意不访问互联网。但您可以使用scp将文件上传到服务器。

相关内容