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

el_*_*_le 44 ssh remote

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

Lui*_*ado 49

SSH在所有 Ubuntu 版本中都默认提供,因此您无需安装它(+1 表示已经安装它;))

当然,除非您希望为 Ubuntu 服务器使用 SSH 服务器。在那种情况下,你会

sudo apt-get install openssh-server 
Run Code Online (Sandbox Code Playgroud)

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

使用它相当容易:

ssh USER@SITE例如,如果我的用户名是cyrex并且站点是ubuntu.com那么你会这样做:

ssh cyrex@ubuntu.com
Run Code Online (Sandbox Code Playgroud)

现在假设您要将一个bubblegum.txt从您的计算机调用的文件复制到您的 ubuntu 站点,并希望将该文件保留/var/www在 ubuntu 站点的文件夹中。您可以使用 SSH 的 Brother SCP(在 Ubuntu 中也默认提供)来执行此操作(假设您的用户在 ubuntu 站点中具有足够的权限):

scp bubblegum.txt cyrex@ubuntu.com:/var/www 
Run Code Online (Sandbox Code Playgroud)

请注意:USER@SITE 和要复制它的文件夹之间的位置。它是将两个元素分开的元素。

现在假设您正在使用 scp 上传一些大文件,然后最糟糕的情况发生了,世界爆炸了。您如何继续将该文件上传到服务器。然后你得到了 SCP 的老大哥rsync(在 Ubuntu 中默认提供)。在许多方面 scp 和 rsync 做同样的事情,但它们之间有一些很大的区别:

  • rsync 可以在断开连接或世界统治后上传 rsync 或 scp 留下的部分文件。
  • rsync 可以比 scp 更好地显示进度
  • rsync 可以优化上传,这样您实际上可以在上传时节省几秒钟或几分钟。它还在上传结束时显示您保存了多少。

无论如何,在 scp 无法上传整个文件的情况下,这就是 rsync 来拯救的地方。(感谢 Marco Ceppi 的提示。如果你喜欢猫……和/或狗,请投票给他的评论)

假设您从 scp 执行了上面提到的上传,并且达到了 60%。你怎么能在不损失上传时间的情况下继续那 60%。你会这样做:

rsync --progress --partial bubblegum.txt cyrex@ubuntu.com:/var/www  
Run Code Online (Sandbox Code Playgroud)

这告诉 rsync 使用--progress标志以一种很好的人类可读方式显示进度。它还告诉 rsync 检查并从带有--partial标志的文件 bubblegum.txt 的位置继续。您还可以使用与 --progress 和 --partial 相同的 -P 参数来简化要写入的数量,因此上面的内容如下所示:

rsync -P bubblegum.txt cyrex@ubuntu.com:/var/www  
Run Code Online (Sandbox Code Playgroud)

您甚至可以通过执行上面的 rsync 命令来CTRL+C上传并恢复它。能够随时随地恢复某些东西非常酷。

有关Ubuntu 默认附带的rsync 的更多信息,您可以键入以下终端命令:

man rsync  
info rsync  
rsync --help
Run Code Online (Sandbox Code Playgroud)

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

ssh cyrex@ubuntu.com -p PORT. 例如:ssh cyrex@ubuntu.com -p 1234告诉它使用 1234 端口进行 SSH 服务。这必须首先在服务器中配置才能工作。

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

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

sudo restart ssh
Run Code Online (Sandbox Code Playgroud)

或者

sudo /etc/init.d/ssh restart
Run Code Online (Sandbox Code Playgroud)

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

在此处输入图片说明

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

在此处输入图片说明

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

man ssh  
info ssh  
ssh --help
Run Code Online (Sandbox Code Playgroud)


jam*_*ney 23

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

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

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

    连接到服务器

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

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

    选择 SSH

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

该文件夹应该为您打开。


Sta*_*rds 6

您可以使用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
Run Code Online (Sandbox Code Playgroud)

要卸载,

fusermount -u ~/far_projects
Run Code Online (Sandbox Code Playgroud)

要将其添加到您的 /etc/fstab,

sshfs#$USER@far:/projects /home/$USER/far_projects fuse defaults,idmap=user 0 0
Run Code Online (Sandbox Code Playgroud)

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