尝试将本地文件传输到Web服务器

时间:2017-02-03 23:10:38

标签: ssh sftp web-hosting lamp digital-ocean

我最近在ubuntu 14.04上为我的网络服务器设置了Lamp堆栈。我正在通过Digital Ocean工作。这些是我经历的步骤......

在本地计算机上,我使用

登录我的网络服务器
sftp user@web_server_ip

然后

sftp> cd /var/www/html   

我如何继续使用本地计算机获取该网站的文件?我将如何转移它们?

我知道我必须使用[get]和[put]命令

我只是把我们认为本地/偏远的东西搞糊涂了?如果我已登录本地计算机上的远程服务器。过度思考?

这是我试图关注的教程:How To Use SFTP to Securely Transfer Files with a Remote Server

编辑:

所以我尝试从我的本地机器移动整个目录,这就是我最终做的事情

 scp -r /path/directory_name name@ip_address:/var/www/html

 scp: /var/www/html/portfolio.take7: Permission denied

我应该在scp -r之前使用sudo来更改权限吗?

EDIT2:

我也试过

Where_directory_is$ scp -r /path/directory_name name@ip_address:/var/www/html

/var/www/html: No such file or directory

2 个答案:

答案 0 :(得分:1)

SCP开始可能更容易,它允许您使用一个命令复制文件。因此,例如,如果您有本地文件/path/filename.css并想将其传输到服务器,则可以在本地计算机上使用以下命令:

scp /path/filename.css username@remote_hostname_or_IP:~

此命令复制本地文件,并使用SSH将其传输到远程服务器上用户名的主目录。然后,您可以在(ssh username@remote_hostname_or_IP)中进行SSH,然后使用位于主目录中的文件执行所需操作,例如将其移动到正确的Apache目录中。

一旦开始变得更舒服,如果愿意,可以切换到sftp。

<强>更新

以下是设置Apache权限的方法。假设您在运行Apache的Linux计算机上有一个帐户you,我们会说IP为192.168.1.100。

在本地计算机上,创建此shell脚本secure.sh,并记住shell脚本需要具有执行权限(chmod +x secure.sh)。填写以下内容:

#!/usr/bin/env bash
# Lockdown the public web files
find /var/www -exec chown you:www-data {} \;
find /var/www -type d -exec chmod -v 750 {} \;
find /var/www -type f -exec chmod -v 640 {} \;

此shell脚本将/var/www/目录中任何内容的权限设置为750目录,640表示文件的权限。这为文件和you(Apache的帐户)读取权限提供了www-data完整的读/写权限。您在上传文件时随时运行此选项以确保始终正确设置权限。

接下来,SSH进入远程计算机并转到/var/www/html目录。确保所有权未设置为root。如果是,请将secure.sh文件scp到远程计算机,成为root并运行它。这只需要完成一次,因此您可以远程设置权限。

现在,您可以通过本地计算机上的/var/www/命令从您要复制到scp -r的目录顶部直接复制到/var/www/html

scp -r ./ you@192.168.1.100:/var/www/html/

然后运行此命令以远程运行secure.sh shell脚本并将输出发送到out.txt:

ssh you@192.168.1.100 -p 23815 ./secure.sh > out.txt

然后cat out.txt看到文件权限已相应更改。

如果这是一台面向公众的计算机,那么必须为您的scp连接添加SSH密钥。您可以使用this tutorial了解有关生成自己的密钥的更多信息,这非常简单。要使用密钥,您只需在-i private_key_filescp命令中添加ssh即可。最后,将/ var / www文件保存为root,SSH保存到计算机,su成为root,然后以root身份运行secure.sh(将所有者更改为shell脚本中的root)实际上会更安全。这一切都取决于您需要担心的安全级别。如果它是一台开发计算机(这是我假设的那样),那就不用担心了。

答案 1 :(得分:0)

对于文件夹使用

scp -r root @ yourIp:/ home / path / / pathOfDirectory /

对于文件 scp -r root @ yourIp:/ home / path / / pathOfDirectory / file fileNameCopied