如何使用 SSH(ssh 和 rsync 命令)?

如何使用 SSH(ssh 和 rsync 命令)?

我如何通过 SSH 与远程服务器连接,以便浏览和编辑文件?我有一个用户名和密码可以使用。

答案1

SSH所有 Ubuntu 版本都默认提供该功能,因此您无需安装它(+1,因为已经安装了它;))

当然,除非你想为你的 Ubuntu 服务器安装一个 SSH 服务器。在这种情况下,你会

sudo apt-get install openssh-server 

这应该使您的计算机/服务器准备好成为 ssh 服务器。

使用它相当容易:

ssh USER@SITE例如如果我的用户名是赛瑞克斯该网站是ubuntu.com那么你可以这样做:

ssh [email protected]

现在假设你想bubblegum.txt从你的电脑复制一个文件到你的 ubuntu 站点,并且想把这个文件留在/var/wwwubuntu 站点的文件夹中。你可以使用 SSH 的兄弟工具来做到这一点(假设你的用户在 ubuntu 站点有足够的权限),SCP(这也是 Ubuntu 的默认设置):

scp bubblegum.txt [email protected]:/var/www 

注意:USER@SITE 和您要复制的文件夹之间的 。它是两个元素之间的分隔符。

现在假设你正在用 scp 上传一些大文件,然后最糟糕的事情发生了,世界爆炸了。你怎么能继续将该文件上传到服务器呢?然后你就得到了 SCP 的老大哥,同步(Ubuntu 默认提供)。scp 和 rsync 在许多方面都做同样的事情,但它们之间存在一些重大差异:

  • rsync 可以上传断开连接或世界控制后 rsync 或 scp 留下的部分文件。
  • rsync 可以比 scp 更好地显示进度
  • rsync 可以优化上传过程,让您在上传过程中节省数秒或数分钟的时间。它还会在上传结束时显示您节省了多少时间。

无论如何,如果 scp 无法上传整个文件,这时 rsync 就可以派上用场了。(感谢 Marco Ceppi 提供的提示。如果您喜欢猫……和/或狗,请为他的评论投票)

假设您从 scp 上传了上述内容,并且已上传到 60%。您如何才能继续上传这 60% 而不会浪费上传的时间。您可以这样做:

rsync --progress --partial bubblegum.txt [email protected]:/var/www  

这告诉 rsync 使用标志以易于阅读的方式显示进度--progress。它还告诉 rsync 使用标志检查并从文件 bubblegum.txt 到达的位置继续--partial。您还可以使用 -P 参数简化要写入的数量,该参数与 --progress 和 --partial 相同,因此上面的内容将如下所示:

rsync -P bubblegum.txt [email protected]:/var/www  

您甚至可以通过执行上述 rsync 命令来CTRL+C上传并恢复上传。能够随时恢复任意次数,这真是太棒了。

欲了解更多信息同步这是 Ubuntu 默认自带的,您可以输入以下终端命令:

man rsync  
info rsync  
rsync --help

现在指定 SSH 的端口。要指定它,您可以这样做:

ssh [email protected] -p PORT。例如:告诉它使用端口 1234 作为 SSH 服务。必须先在服务器中配置此项才能使其正常工作。ssh [email protected] -p 1234

要配置它,只需在服务器中打开文件ssh_配置像这样:nano /etc/ssh/ssh_config并将显示为另一个端口的行更改# port 22为另一个端口。还请记住删除该行的注释。port 1234在上面的示例中,它应该如下所示:

现在只需重新启动服务器中的 ssh 服务即可。要重新启动服务,只需执行以下操作:

sudo restart ssh

或者

sudo /etc/init.d/ssh restart

注意 - 您还可以从 GUI 工具中使用 SSH,例如filezilla提供使用 ssh 而不是 ftp 的选项。您也可以从 Ubuntu 菜单中访问 ssh:

在此处输入图片描述

可以访问多个选项,包括Windows 共享、SSH 和 FTP

在此处输入图片描述

有关 SSH 的更多信息,您可以在 Ubuntu 控制台中使用以下命令之一:

man ssh  
info ssh  
ssh --help

答案2

如果您想通过 Nautilus 浏览服务器,就像浏览本地机器上的文件一样:

  1. 打开 Nautilus(“主文件夹”)

  2. 转到“文件”-->“连接到服务器”

    连接到服务器

  3. 在“服务类型”下选择“SSH”

  4. 将 IP 地址或域名放在“服务器”下

    选择 SSH

  5. 如果您希望将位置保存到书签中,请添加您的用户名并选中“添加书签”。

该文件夹应该会立即打开。

答案3

您可以使用sshfs将远程目录挂载到本地文件系统。

https://help.ubuntu.com/community/SSHFS

命令行用法

现在,假设您在远程计算机上运行了 SSH 服务器,只需运行 SSHFS 命令即可挂载远程目录。在此示例中,远程目录是远程主机 far 上的 /projects。本地挂载点是 ~/far_projects。

mkdir ~/far_projects
sshfs -o idmap=user $USER@far:/projects ~/far_projects

要卸载,

fusermount -u ~/far_projects

要将其添加到 /etc/fstab,

sshfs#$USER@far:/projects /home/$USER/far_projects fuse defaults,idmap=user 0 0

请注意,在编辑 fstab 时,您必须将 $USER 更改为您的登录名,但在键入命令时则不需要这样做(在这种情况下,shell 会为您执行此操作)。

答案4

如果您可以使用 Vim、Pico 等,则可以使用终端:

ssh [email protected]

输入您的密码,您就可以进入。从那里,它就像一个常规终端,只是没有 GUI。

注意,你可以添加“-X”选项,如果你的服务器配置了 X 服务器,那么你运行 GUI 程序。如果添加了 -X,只需输入其名称,它就会启动 GUI 窗口。

现在,您可能想要设置无密码登录。如果您还没有密钥,请输入ssh-keygen并按回车键保留所有默认值。然后执行。完成后,只需输入,无需输入密码!ssh-copy-id [email protected]ssh [email protected]

如果您的用户名与笔记本电脑的用户名相同,则无需MYUSER@。您可以直接执行ssh mysite.com。您也可以使用选项-l MYUSER代替MYUSER@

如果您想要一个 GUI,Nautilus 可以做到这一点。文件->连接到服务器->[选择“SSH”,然后填写登录详细信息]-> 连接。

如果您只想复制一个文件,请使用 scp [安全复制]。
scp [email protected]:path/to/file.dat ./

这会将文件“~/path/to/file.dat”复制到当前目录。请注意,如果 后面没有斜线或波浪号:,则它会像您位于主目录 [ ~/] 中一样。如果您想上传, 这会将其放在您的主目录中。scp ./local_file.dat [email protected]:

相关内容