我最近在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来更改权限吗?
我也试过
Where_directory_is$ scp -r /path/directory_name name@ip_address:/var/www/html
/var/www/html: No such file or directory
答案 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_file
和scp
命令中添加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