如何使用SSH(ssh和rsync命令)?
如何通过SSH与远程服务器进行SSH,以便浏览文件并进行编辑? 我有一个用户名和密码可供使用。
在所有Ubuntu版本中默认使用SSH ,因此您可以节省安装它(+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的提示。如果你喜欢猫和/或狗,请投票给他评论)
让我们说你从scp上面提到了上传,它达到了60%。 如何在不损失上传时间的情况下继续保持60%。 你会这样做:
rsync --progress --partial bubblegum.txt cyrex@ubuntu.com:/var/www
这告诉rsync使用--progress
标志以一种很好的人类可读方式显示进度。 它还告诉rsync检查并继续使用--partial
标志从文件bubblegum.txt到达的--partial
。 您还可以使用与-progress和–partial相同的-P参数来简化写入量,因此上面的内容如下所示:
rsync -P bubblegum.txt cyrex@ubuntu.com:/var/www
您甚至可以通过CTRL + C上传并通过上面的rsync执行命令来恢复它。 非常酷,有能力随时随地恢复某些东西。
有关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
,并将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:
它允许访问多个选项,包括Windows共享,SSH和FTP :
有关SSH的更多信息,您可以在Ubuntu框中的控制台中使用以下命令之一:
man ssh info ssh ssh --help
如果您想通过Nautilus浏览服务器,就像使用本地计算机上的文件一样:
- 打开Nautilus(“主文件夹”)
-
转到“文件” – >“连接到服务器”
-
在“服务类型”下选择“SSH”
-
将IP地址或域放在“服务器”下
-
如果您希望将位置保存到书签,请添加您的用户名并选中“添加书签”。
该文件夹应该为您打开。
您可以使用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’,然后填写登录详细信息] ->
连接。
如果您只想复制单个文件,请使用scp [安全复制]。
scp MYUSER@mysite.com:path/to/file.dat ./
这会将文件“〜/ path / to / file.dat”复制到当前目录。 请注意,如果在:
之后没有斜杠或波浪号,则它将像您在主目录[ ~/
]中一样。 如果你想上传, scp ./local_file.dat MYUSER@mysite.com:
这会把它放在你的家里。
ssh -X -C user@host nautilus --no-desktop
进入gui模式:)