在SSH中,我如何转换到本地系统?


129

ssh-ed到我的webhost的目录,然后tar-ed webapp进行下载。当我尝试mv~/mydirectory/backups或者/home/mydirectory/backups,它的“家”的定义是我对我ssh'ed到虚拟主机提供商根。

如何在仍位于虚拟主机系统中的同时将ssh转换为本地驱动器?


您连接的是什么操作系统?
Zoredache 2012年

Answers:


181

首先,第一件事:ssh是一种远程登录另一台计算机的方法。在ssh之后获得的shell(命令行)(几乎)与在远程计算机中打开xterm相同。如果没有提供这种方法来移动文件。

但是,远程计算机接受ssh连接这一事实为您提供了一些交换文件的选项:

使用scp 要将其从本地计算机复制到远程计算机,请在本地计算机中键入:

scp /tmp/file user@example.com:/home/name/dir

(其中/ tmp / file可以替换为任何本地文件,而/ home / name / dir可以替换为任何远程目录)

若要从远程计算机复制到本地计算机,请在本地计算机中键入:

scp user@example.com:/home/name/dir/file /tmp

使用sshfs 这会稍微先进一点,但是会好得多(当两台计算机的互联网连接都很好时。如果不能,请坚持使用scp)

您可以将目录从远程计算机“链接”到本地计算机的(空)目录。假设您将/ some / remote / dir从远程计算机“链接”到计算机中的/ home / youruser / remotecomp。如果远程计算机中有文件/ some / remote / dir / file,则可以在/ home / youruser / remotecomp / file上看到它。您可以照常复制和制作MV,甚至可以更改远程文件和目录。

但是请注意,当连接结束时,/ home / youruser / remotecomp再次变为空目录,并且您仅将复制到其他目录的文件保留在本地计算机中

为达到这个:

1)安装sshfs:

sudo apt-get install sshfs

2)创建一个空目录

mkdir /home/youruser/remotecomp

3)“链接”两个目录(正确的名称是mount)

sshfs user@server.com:/some/remote/dir /home/youruser/remotecomp

4)享受

5)“取消链接”目录

fusermount -u /home/youruser/remotecomp

如果本地计算机运行Windows,则 可以找到scpfor Windows的版本。参见例如winscp


是否可以通过“远程计算机上的终端”将文件从远程计算机复制到本地计算机?在您的情况下,您使用了本地计算机上的终端。我说的是本地计算机是Windows,远程计算机是ubuntu的情况,我通过ssh登录到远程计算机。
chandresh

通常不会。据我所知,通过“远程计算机中的终端”进行复制意味着您需要在“本地计算机”中使用SSH服务器(我在回答时有意跳过了该服务器,但是“远程计算机接受ssh连接这一事实”的意思是说“远程计算机正在运行ssh服务器的事实”)
josinalvo

但是,您可以找到Windows的“ scp客户端”。参见例如winscp.net/eng/download.php
josinalvo '17

我喜欢这个sshfs选择
Fibo Kowalsky'Mar 3'2

如果要传输大文件,请在ssh上使用rsync和rsync -P -e ssh /tmp/file user@example.com:/home/name/dir。这是因为如果文件传输中途失败,scp则将删除该文件。另一方面,如果使用rsync-P选项,它将在远程计算机上保留不完整的文件,并且在重新启动传输时,将确保远程计算机上已经存在的文件与本地计算机上的文件匹配,并且然后在传输中断的地方继续。
鲍里斯(Boris)'18

16

您可以使用scprsync。在您的本地系统中:

scp remoteuser@remotehost:/remote/dir/file /local/dir/

但是,由于您提到了备份,因此我认为备份将是增量备份,因此您需要不时进行备份。因此,rsync是增量备份的更好选择。在本地外壳上:

rsync -avz -e ssh remoteuser@remotehost:/remote/dir /local/dir/

请参见rsync(1)scp(1)手册页中的选项。


10

您可以使用scp安全副本。

从本地shell:

scp -C username@webhost:/path/of-the/tar.archive /home/mydirectory/backups/

本示例将通过ssh从Webhost的/path/of-the/tar.archive复制到/ home / mydirectory / backups /

额外选项:

-C:启用压缩


6

我有同样的问题。这是简单的解决方案:

  1. 打开Nautilus (文件浏览器)
  2. 单击+ Other Locations左面板底部的。
  3. 在底部有一个条Connect to server。在输入框中输入ssh地址,例如ssh://111.222.333.444/
  4. 在打开的对话框中输入您的用户名和密码。
  5. 成功通过身份验证后,您将位于home远程位置。随时随地移动文件。

好答案!简单而又最接近实际问题的答案,即您如何从ssh远程计算机中进行MV。答案是,您无法在本地计算机上执行此操作。或这个!您可以通过资源管理器以图形方式进行操作,以便至少对用户而言确实确实可以将文件直接从远程移动到本地。
Kvothe

2

其他答案建议rsyncscp,这两个答案都要求您知道要复制的文件在远程计算机上的位置。

相反,如果您希望能够像使用一样在远程计算机上四处闲逛,则可以ssh运行sftp。登录到服务器非常类似于ssh,但是进入服务器后,键入help以获取命令列表-它使您可以在本地和远程计算机上四处移动,并轻松地来回传输文件。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.