在Debian和Ubuntu上使用SFTP和笼子传输文件

!你好朋友! 今天,我为您提供了一种使用FTP服务器进行安全文件传输的替代方法。 已经是同事 KZKG ^ Gaara 根据包裹发布了一个 监狱。 我们将要开发的软件包基于我们存储库中现有的软件包。
我们会看到:

  • 输入必填项
  • 我们如何配置Openssh服务器?
  • 我们如何创建用户?
  • 我们如何修改主目录,以使笼子起作用?

输入必填项
我们经常需要将文件从远程计算机复制到我们的计算机。 许多人问过我。 是否安装FTP?如何安装SAMBA? 好吧,让我们从简单到复杂。 首先,如果我们有 OpenSSH服务器 已安装? 如果我们没有,请使用简单的命令:

aptitude安装openssh-server

现在我们有了它!然后我们将能够通过SFTP(安全文件传输协议)协议安全地传输文件,该协议使用SSH(安全外壳)进行加密。

默认情况下,有权通过以下方式启动远程会话的用户 ssh用户@我的团队,他们将能够看到存储在我们系统上的几乎所有文件,这可能不符合我们的喜好,或者出于安全原因,我们不允许这样做。

本文将帮助我们配置 OpenSSH服务器 这样我们想要的用户就被限制在他们的个人目录中 /主页/用户。 我们澄清一下, 使用此方法,声明的用户将无法通过ssh控制台或PuTTy启动远程会话。 他们将只能在我们的计算机或服务器上的个人目录之间传输文件.

此处描述的方法对Debian版本5(Lenny)或更高版本以及Ubuntu 9.04或更高版本有效。 Hardy或Ubuntu 8.04的SSH软件包版本已经过时,并且不支持我们将在下面描述的配置。

我们如何配置Openssh服务器?
作为用户 我们编辑文件 的/ etc / SSH / sshd_config中 使用任何简单的文本编辑器。 我们建议使用 纳米 在控制台模式下。

纳米/ etc / ssh / sshd_config

我们希望出现以下行:

子系统sftp

在Lenny和Squeeze中,有:

子系统sftp / usr / lib / openssh / sftp-server

如果它不存在,我们在文件末尾添加:

子系统sftp internal-sftp

我们继续编辑文件 sshd_配置 然后在最后添加:

匹配组group-sftp ChrootDirectory%h X11Forwarding否AllowTcpForwarding否ForceCommand internal-sftp

我们保存更改并重新启动服务:

/etc/init.d/ssh重新启动

我们如何创建用户?
首先,我们创建«»我们在 sshd_配置。 请谨慎选择我们之前选择的名称,它不会是已经存在并且属于系统的组。 如果我们不想限制系统上的现有用户,则必须创建新用户,以便他们可以传输文件。 为了使笼子正常工作,我们还必须使它们成为相关小组的成员。

addgroup group-sftp adduser user1 adduser user2 [----] usermod -G group-sftp user1 usermod -G group-sftp user2

要检查组和用户的创建,我们可以执行以下操作:

较少/ etc /密码较少/ etc / group ls -l / home

用户应该出现 用户1 y 用户2以及团体 组-sftp 以及与创建的用户相对应的用户。 另外,在列出目录时 /主页,将显示每个创建的用户的主目录。

我们如何修改主目录以使笼有效地工作?
我们必须提高创建的每个用户的个人文件夹的安全性,以使他们无法在其个人目录下创建其他文件夹,并在需要的地方(而不是在他们想要的地方)具有写许可权🙂:

chown root:root / home / user1 / home / user2 chmod 755 / home / user1 / home / user2 cd / home / user1 mkdir文件html_public chown user1:user1 * cd / home / user2 mkdir文件html_public chown user2:user2 *

属于该组的用户 组-sftp,从现在开始,他们将只能通过SFTP使用其名称和密码登录,并且他们将能够与我们创建的位于其个人文件夹下的目录之间来回传输文件,但不会能够看到我们文件系统的其余部分。

对于文件和文件夹的传输,我们可以使用Nautilus,Konqueror,WinSCP,FileZilla和其他支持SFTP协议的文件。 对于Konqueror,我们必须使用 鱼://用户@ remotecomputer.

我们希望本文会实用!
直到下一次冒险,朋友们!

sftp_鹦鹉螺


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   赫格堡

    好文章。 一种共享文件的非常安全的方式。 非常感谢您的解释。 🙂

  2.   闪电战

    优秀

  3.   洛洛

    而且使用sshfs是否更舒适?

    对于我们的团队,远程文件夹将显示为另外一个具有相同特征的文件夹。

  4.   雅各布·伊达尔戈

    您好Federico,一如既往的出色文章。 很高兴现在能够从互联网上阅读您的帖子。
    拥抱
    jako

    1.    猎人

      雅各布怎么样,没有费德里科不同意。 嘿,当您再也没有Ubuntu时,您将人脸涂成绿色并且完全打开一个拥抱。 😉

  5.   KZKG ^ Gaara

    您正在做出杰出的贡献,请继续努力😀

    1.    费德里科

      感谢千KZKG ^ Gaara,并感谢大家的反馈

  6.   Jaenense

    可以将用户关在/ home / user / ..以外的文件夹中吗?

    我想要做的是将用户限制在/ media / hdd /文件夹中...
    我需要这样做,因为服务器是带有Raspbian的Raspberry Pi,并且它在SD卡上有/ home /…/文件夹,这将很快填满

    我已经以几种方式尝试过,并且客户端中的结果始终是“ Broken pipe”,而服务器中的结果是致命的:chroot目录组件“ / media / HDD /»的所有权或模式不正确”

    非常感谢你的所有

    1.    费德里科

      我认为您将不得不告诉系统该用户的主文件夹为/ home / HDD,只要该分区具有本地linux格式,即ext4; ext3; 等等例如,如果用户是jae(简称),则必须执行以下操作:

      :〜#usermod –move-home –home / home / HDD jae

      另请参见man usermod。 问候

  7.   欧文·埃尔南德斯

    我有问题,或者我有一个公共朋友在亚马逊提供服务,我必须通过sftp进入以放置或删除文件。
    我以前做过,一切都很好,但是今天他对我做了一些我没有发生的事情
    在ami内有一系列文件夹,其中一个是俘虏的互联网门户(针对我的用户的页面)。事实证明,我在那里为我的用户进行宣传和宣传,并且不断进行修改并通过sftp上传( winscp)。root权限和root pass
    我已经授予chmod 777的写入权限,并且一切进展顺利
    但是今天,当更新网络并上传index.html及其其他文件时,它为我提供了名称,但它没有留下字节,即零(空白),现在您在我的网络上看不到任何内容
    我已关闭会话并再次输入,再次授予权限,更改用户,更新,尝试放置其他文件,生成新文件,并且它总是做同样的事情
    它给了我文件,但没有数据
    有人可以帮我吗?
    非常感谢您的回答
    首先,谢谢
    ATTE
    里克·欧文·埃尔南德斯

  8.   FCC

    您好如何使用filezilla,我已经看过几种模式,但仍然无法连接。
    这是错的。

  9.   佩德罗

    下午好,

    执行该步骤,笼中的设备可以完美工作,但是,当尝试在“文档”或“ html_publico”文件夹中写入内容时,它使我无法访问。 它具有提及的权限,没有任何允许的权限。

    drwxr-xr-x。 2 user1 user1 4096 Mar 11 13:16 docs
    drwxr-xr-x。 2 user2 user2 4096 11月13日16:XNUMX html_publico

    结果是尝试写入任何文件夹时访问被拒绝。 但是,执行get确实可以。

    希望您能尽快帮助我。

    问候。