我将文件存储在 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 这样可以在任何端口上运行的更酷的协议。