当前位置: 首页>>技术教程>>正文


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

, ,

问题描述

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

最佳解决办法

默认情况下,SSH在所有Ubuntu版本中出现,因此您无需安装它(+1已经存在;))

当然,在您需要为Ubuntu服务器安装SSH服务器的情况下。在那种情况下你会的

sudo apt-get install openssh-server 

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

使用它很容易:

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

ssh cyrex@ubuntu.com

现在假设您要将一台名为bubblegum.txt的文件从您的计算机复制到您的ubuntu站点,并希望将该文件保留在ubuntu站点的/var/www文件夹中。你可以使用SSH的兄弟SCP(在Ubuntu中默认出现),这样做(假设你的用户在ubuntu网站上有足够的权限):

scp bubblegum.txt cyrex@ubuntu.com:/var/www 

请注意USER @ SITE与要复制它的文件夹之间的:。它是将两种元素分开的一种。

现在让我们说你用scp上传一些巨大的文件然后最坏的情况发生,世界爆炸。如何继续将该文件上传到服务器。然后你得到了SCP的大哥rsync(默认情况下是Ubuntu)。在许多方面,scp和rsync都做同样的事情,但这里有一些很大的区别:

  • rsync可以在断开连接或统治世界后上传从rsync或scp留下的部分文件。

  • rsync可以比scp更好地显示进度

  • rsync可以优化上传,使您可以在上传时节省几秒或几分钟。它还会在上传结束时显示您节省了多少。

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

让我们说你从scp做了上面提到的上传,它达到了60%。如何在不损失上传时间的情况下继续保持60%。你会这样做:

rsync --progress --partial bubblegum.txt cyrex@ubuntu.com:/var/www  

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

rsync -P bubblegum.txt cyrex@ubuntu.com:/var/www  

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

有关rsync的更多信息,默认情况下使用Ubuntu,您可以键入以下终端命令:

man rsync  
info rsync  
rsync --help

现在为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

要么

sudo /etc/init.d/ssh restart

注 – 您也可以使用来自filezilla等GUI工具的SSH,它提供了使用ssh而不是ftp的选项。也可以在Ubuntu菜单中访问ssh:

ssh,remote,ubuntu

它允许访问多个选项,包括Windows共享,SSH和FTP:

ssh,remote,ubuntu

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

man ssh  
info ssh  
ssh --help

次佳解决办法

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

  1. 打开Nautilus(“Home Folder”)

  2. 转到”File” – > “连接到服务器”

    ssh,remote,ubuntu

  3. 在”Service Type”下选择”SSH”

  4. 将IP地址或域放在”Server”下

    ssh,remote,ubuntu

  5. 如果您希望将位置保存到书签,请添加您的用户名并检查”Add bookmark”。

该文件夹应该为您打开。

第三种解决办法

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

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

命令行用法

现在,假设您在远程计算机上运行了SSH服务器,只需运行SSHFS命令即可安装远程目录。在此示例中,远程目录是/远程主机上的项目。本地挂载点是〜/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会为您执行此操作)。

第四种办法

假设已经设置了ssh服务器,打开终端并输入:

ssh username@hostname

系统会提示您输入密码;输入它。如果需要端口号,请添加-p PORTNUM

第五种办法

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

ssh MYUSER@mysite.com

输入您的密码,您就在。从那里,它就像一个普通的终端,除了你没有GUI。

注意,您可以添加’-X’选项,如果您的服务器配置了X服务器,则可以运行GUI程序。如果添加了-X,只需键入其名称即可启动GUI窗口。

现在,您可能想要设置无密码登录。如果您还没有密钥,请键入ssh-keygen,然后按Enter键以显示所有默认值。然后做ssh-copy-id MYUSER@mysite.com。完成后,只需输入ssh MYUSER@mysite.com,您就不必输入密码了!

如果您的用户名与笔记本电脑的用户名相同,则不需要MYUSER@。你可以做ssh mysite.com。您也可以使用-l MYUSER选项代替MYUSER@

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

如果您只想复制单个文件,请使用scp [安全复制]。 scp MYUSER@mysite.com:path/to/file.dat ./

这会将文件”~/path/to/file.dat”复制到当前目录。请注意,如果您在:之后没有斜线或波浪号,它将像您在主目录[~/]中一样。如果你想上传,scp ./local_file.dat MYUSER@mysite.com:将它放在你的家庭目录。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1953.html,未经允许,请勿转载。