我想以安全的方式通过互联网在文件之间传输文件。 两台机器都有linux(“服务器”使用Ubuntu 12,“客户端”使用Mint 14)。 我不想让SSH服务器,我希望客户端能够打开和读取服务器上的文件,但它不能修改/擦除的东西。 它允许客户端将文件复制到服务器[或在那里创build文件]并从服务器复制。
我想以上面解释的方式在我的服务器上共享一些目录。 最后,我想以一种简单的方式访问客户端中的文件,如GUI模式或其他东西..不使用shell,而是使用类似windows的风格(如果我的远程文件夹是本地文件夹,但限制访问为上面解释)。
对我来说安全意味着连接必须encryption,并且login可以使用一些私钥/公钥scheme。
对我来说最好的解决scheme是什么? 我试图find一些适合我的“规范”的SFTPconfiguration,但访问限制太“奇怪”…我不知道,即使SFTP工作,而不允许SSH。
非常感谢您的帮助
编辑:非常感谢您的帮助。 我真的很感激! 我会评估所有的答案,并试图找出最好的解决scheme。 现在,我认为创build一个限制访问权限的用户,只允许这个用户执行SSH / SFTP超安全是最好的方法…“黑客”,以避免ssh真的可以使事情变得更糟(不太安全)。 我的问题有点混乱,因为我的“逻辑”有点不安。 现在我可以看得更清楚了
传统文件传输协议(FTP)是为了传输文件而发明的。 要以安全的方式使用它,可以使用ftps(不是sftp,而是ftp over ssl),或者设置一个vpn连接来保证安全。
当我searchvsftpd + ssl时, 这是第一个似乎是合理起点的结果 。
您可以通过SSL设置WebDAV文件系统。
您可以使用任何协议,甚至没有encryption和没有身份validation。 您只需在发送之前签署和encryption数据:
gpg --armor --local-user senderkey --recipient recipientkey --sign --encrypt cleartextfile
如果您对目标上的login可能性偏执,则可以使用组合
iptables )logging的networking事件(不打开连接) 尝试WebDAV 。 这是我最喜欢的在NAS上访问文件的协议。
在我看来,你应该能够通过向用户authorized_keys文件添加一个command="..."指令来限制用户只是sftp。 我们正在做$ work来限制一些用户帐户只是rsync。
http://troy.jdmz.net/rsync/index.html上有一个小程序,它列出了rsync的过程。
“有没有办法限制我的服务器上的SSH访问,然后只有我的客户端可以做到ssh / sftp?
当然。 强密码/密码或基于密钥的authentication就足够了。 如果您想进一步放纵自己的偏执狂,除了应该有权访问的IP地址外,防火墙closures端口22,或者添加Google Authenticator的一次性密码PAM模块进行双因素身份validation。
作为远程访问服务器的行业黄金标准,正确安全的SSH将比基于“不需要SSH”的唯一要求的简单的解决方法要安全得多。
以下是简单而真棒:
python -m SimpleHTTPServer 8888
这为当前目录启动一个新的http文件服务器。 假设当前目录中有一个名为foo的文件,可以这样下载:
wget http://your.ip.here:8888/foo
您可以使用HTTPS协议。 这是nginx的简单安装。
apt install nginx cd /etc/nginx/ ; openssl req -x509 -newkey rsa:2048 -keyout site.key -out site.crt -days 365 -nodes vim /etc/nginx/sites-enabled/default server { listen 443 ssl default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; ssl_certificate site.crt; ssl_certificate_key site.key; server_name _; location / { try_files $uri $uri/ =404; } } nginx
在这之后,把你的文件复制到/ var / www / html,然后从服务器下载。 如果你想closures访问用户使用基本的身份validation 。 如果你想上传文件,你可以为它创build一个简单的PHP脚本 。