问题描述
如何通过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:
它允许访问多个选项,包括Windows共享,SSH和FTP:
有关SSH的更多信息,您可以在Ubuntu框中的控制台中使用以下命令之一:
man ssh
info ssh
ssh --help
次佳解决办法
如果您想通过Nautilus浏览服务器,就像使用本地计算机上的文件一样:
-
打开Nautilus(“Home Folder”)
-
转到”File” – > “连接到服务器”
-
在”Service Type”下选择”SSH”
-
将IP地址或域放在”Server”下
-
如果您希望将位置保存到书签,请添加您的用户名并检查”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:
将它放在你的家庭目录。