通过 SFTP 共享 SMB 服务器

通过 SFTP 共享 SMB 服务器

我将文件存储在 NAS 上,希望通过互联网访问这些文件,但我知道转发运行普通 smb 或 ftp 的端口是个坏主意。我希望能够使用我的 Linux 机器安装 smb 共享,然后通过可以进行端口转发的 sftp 进行共享。这可能吗?我只需将硬盘从 NAS 移动到 Linux 计算机,但没有足够的可用 SATA 端口。

谢谢你的时间,埃里克

答案1

唯一安全的方法是不使用密码并为与外界的 sftp 连接设置公钥:

ssh-keygen

如果您没有设置密码,则可以编写脚本使其自动启动。您还可以使用密码加密您的私钥。然后您需要修改/etc/ssh/sshd_config为仅允许使用密钥而不是密码登录。

您应该会看到类似下面的内容。私钥永远不会离开您的机器。

tom@jb:~/.ssh$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/tom/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/tom/.ssh/id_rsa
Your public key has been saved in /home/tom/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:3f88MO3hUf4DvGFASPjuWEmoTwCGFsw3s+xGJgjtFck tom@jb
The key's randomart image is:
+---[RSA 3072]----+
|ooo..o  o..      |
|.=.*E  . . .     |
|+.+.=   o .      |
|...= . . + o    .|
|  =   o S o + ...|
|   o . . +   O +.|
|  .   o +   . X +|
|       o .   . B.|
|                =|
+----[SHA256]-----+

公钥应添加到服务器的授权密钥文件中:

cat /home/tom/.ssh/id_rsa.pub >> authorized_keys # roughly speaking

不过,首先不要问我你打算如何获得他们的公钥!这是看起来像这样的文本;

cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC+ybhOrgg7SBbbMho75R2DsAnFNjHGZGEa2i2PhNM2mGAOY/7GRGhEQsUuGHyciuvSld7m+HVTEemXQszAc9B0/ElO/wuz1+i/elSpi6dbMuzqihZE9SFik8GQzf8BxrgsU1av/OazwagLUPWm2Y4XGxYZrfolRSnhYiJ3htB8G6TH6yemX9jZ6btxTlUlCtkmgR0hTA8iZzPwTAr/g9TckBee9nbq9amcVO2ff+t+ and this is only the pub key of a 4096 bit pair remember MZFF8PxDFQH70qWcrb2XSlUvhsfCGZxTQqLWON749rLXQSPSbW8nFA2Lz1mRJ++NnChvPcODBgVfBd+E59LBSsD9JLcBrWJj5IBpTBu9znNR3QaMYukrQ0Cnpa01+6ZwmEilhQBZg/xtrJxGK8vq8SQamtWWNzY5Bm0atsbdazXX8j7AUogMNHiXICIrVky6jf4E5tH57dQeHeUTWgU5Ql3q6yyfKh/Q1HJMdvIlS58cYE5Xc= tom@jb

您的 sshd 服务器可能需要在开放的互联网 0.0.0.0 上监听,而不是 127.0.0.1(仅限您)或 LAN 的 192.168.1.69。然后在防火墙上打开端口 22 到您的主机 192.168.1.69 等。如果您需要从 ssh 隧道内部获取 SMB 或 SFTP 共享的路径,请尝试拖放相关文件夹的图标以显示如下路径:

/run/user/1000/gvfs/sftp:host=moderna.local/Users/tom/ALLYOURBASE

这就是我如何以读/写方式访问一些旧的 HFS+ 和 APFS macOS 格式磁盘。这是解决只读安装问题的好办法。使用 sftp 进入(通过 ssh 进行 ftp)后,可以通过 /run/ 访问此远程安装的网络共享。

我发现 sshfs 比 samba 更受欢迎 - 但是对 CPU 的要求更高一些,因此如果是大工作的话可能会使用 samba,但在 /mnt/sshs 上挂载 / 就能满足我的需求。

免安装 WAN 通配符选项 类似于ssh -L 10.10.10.22:445:192.168.1.69:445(或者可能使用 -RI 经常会得到错误的顺序,也许尝试ssh -R *:445:192.168.1.69:445

现在,远程 LAN 上的每个人都可以通过 * 来访问该机器,只要他们输入 \192.168.1.69\MyDerkaments 或者 smb:\10.10.10.22\DerkaDerkaShare 等,当隧道建立时,您的 linxuxbox 就可以将 SYN 转发到 NAS。Bakala。

希望你那里有防火墙,我不建议打开 445 来抵御互联网的猛烈攻击。

您可以使用 ssh 将 NAS 端口 445 发送为远程侦听套接字:使其在远程 LAN 内可用,这很酷。如果它不介意响应一些不同的子网。

nmap 你的 nas,查找端口 445,假设它被称为 derka_muhamed_nas 你会:

root@putin:/# nmap derka_muhamed_nas
Starting Nmap 7.80 ( https://nmap.org ) at 2021-11-17 05:47 NZDT
Nmap scan report for naztynasofderkaderka (10.0.0.60)
Host is up (0.00068s latency).
rDNS record for 10.0.0.60: derka_muhamed_nas

PORT      STATE SERVICE
445/tcp   open  microsoft-ds   <---  Samba run on port 445 yeah? 

但是对于网络来说并不安全,如果你建立隧道,则只有一台机器可以作为主机,因为 smb 必须位于 445 上,而不像 ssh 这样可以在任何端口上运行的更酷的协议。

相关内容