我正在尝试与同一家庭网络上的另一台 Ubuntu 机器共享一台 Ubuntu 机器上的文件夹。当我右键单击文件夹并选择共享选项时,它告诉我我需要安装 Windows 网络共享服务才能共享文件夹。Windows 与此有什么关系?我不是要与 Windows 机器共享...
Ste*_*zzo 31
Windows 与此有什么关系?我不是要与 Windows 机器共享...
你是对的,这可能会令人困惑。因此,让我首先尝试澄清这些术语:
Windows 共享文件和打印机的方式称为SMB。从人民SAMBA项目已经实现了微软所有的协议和规范的Linux版本。因此,Ubuntu 支持与 Windows 相同类型的文件共享,称为 Samba。
您可以使用 SAMBA 在 Linux 机器之间共享文件。事实上,您可能更喜欢它,例如,如果您有朋友使用他们的 Windows 计算机。
或者,您可以使用共享文件的 Linux 方式,即 NFS(网络文件系统) -上一个问题的答案解释了如何执行此操作。(但它相当技术性)
因此,当“共享选项”对话框要求您安装软件包时,您实际上并未安装任何 Microsoft 软件或类似软件。去做吧,这是非常安全的。
附录:
您可以尝试在遵循 Salih Emin 的说明之前启用共享;如果它不起作用,您将收到一个简单的警告,然后您可以根据需要执行 Salih 描述的步骤。我已经在新安装的最新系统上尝试过它,我确实需要这样做。
我发现 SSHFS 是原生的、稳定的并且非常快。我有两台 xubuntu 机器 (18.04) 共享 /home 文件夹和一个英特尔 NUC 作为“保管箱”USB 记忆棒。到处都是 sshfs。
2020 年 7 月 12 日更新:我找到了适用于 Windows 的 SSHFS。一个干净漂亮的 GUI,零配置,并使用来自 linux-machines 的 SSH 密钥。
以下是如何设置sshfs并在使用fstab重新启动后自动重新连接而无需提供密码。非常感谢serverfault 用户 kubanczyk在远程挂起/恢复后如何重新连接。
我将为您连接的计算机使用“本地机器 - surfbox”,为您要连接的计算机使用“远程机器 - devbox”。
检查您的用户 ID 和组 ID,它们都应该是 1000。
组 ID:id -g localuser
用户 ID:id -u localuser
hostname -I
Run Code Online (Sandbox Code Playgroud)
我将 192.168.1.150 用于本地机器('surfbox')和 192.168.1.151 用于远程机器('devbox')
sudo apt install sshfs fuse ssh
Run Code Online (Sandbox Code Playgroud)
创建组: sudo groupadd fuse
将本地用户添加到组中: sudo usermod -a -G fuse $user
在 fstab 中挂载时我们将需要此选项
编辑/etc/fuse.conf
您的命令行编辑器。删除之前的主题标签user_allow_other
并保存。
出现提示时不要提供密码。只需按 Enter 即可留空。
ssh-keygen -t rsa -C youremail@example.com
密钥存储在本地机器主目录 /.ssh 文件夹中
ssh-copy-id -i ~/.ssh/id_rsa.pub remoteuser@192.168.1.151
系统将提示您输入远程计算机上远程用户的密码。本地机器公钥现在添加到远程机器上的 ~/.ssh/authorized_keys 文件中。
选择对您的远程机器有意义的任何名称。
sudo mkdir /mnt/devboxhome
sshfs 的语法是
sshfs [user@]host:[directory] mountpoint [options]
我们用
sudo sshfs [remoteuser]@192.168.1.151:/home/[remoteuser] /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/[localuser]/.ssh/id_rsa
示例:假设“steve”是本地和远程机器上的用户名
sudo sshfs steve@192.168.1.151:/home/steve /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/steve/.ssh/id_rsa
由于您已将公共 RSA 密钥传输到远程计算机,因此不应提示您输入远程用户密码。
您将收到一条警告,指出该机器不受信任,并提示您是否应添加该机器。将远程计算机添加为受信任。
在本地机器上的终端中,您现在可以在 /mnt/devboxhome 下列出远程机器 /home 目录
cd /mnt/devboxhome ls
或使用 Nautilus 浏览目录。伟大的。
我们将在 /etc/fstab 中添加一个条目来实现这一点。您将需要您的本地机器用户 ID och groupid - 如果您错过了,请参阅介绍。使用命令行编辑器编辑 /etc/fstab 并将这两行添加到 /etc/fstab 的末尾
# Mount devbox at boot remoteuser@192.168.1.151:/home/[remoteuser]/ /mnt/devboxhome fuse.sshfs default_permissions,user,delay_connect,reconnect,ServerAliveInterval=15,ServerAliveCountmax=3,allow_other,identityfile=/home/[localuser]/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0
ServerAliveCountMax
连续 ping 失败,请重新连接。在本地和远程计算机上以 steve 身份登录的用户将具有:
steve@192.168.1.151:/home/steve/ /mnt/devboxhome fuse.sshfs default_permissions,user,delay_connect,reconnect,ServerAliveInterval=15,ServerAliveCountmax=3,allow_other,identityfile=/home/steve/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0
重要:远程目录后的斜杠:steve@192.168.1.151:/home/steve/
保存 /etc/fstab 和 ....
您现在应该可以访问本地机器 /mnt/devboxhome 中的远程机器 /home 目录 在 Nautilus 中,您可以将此文件夹拖到位置栏
在远程机器上再次执行相同的步骤,使本地机器的 /home 目录共享。
目前,Lucid 中存在一个小错误,在 Launchpad 中列出:错误 #536766。此错误不会提示用户安装完成文件共享设置所需的必要软件包。在解决这个问题之前,这里有一个快速的解决方法。
您需要安装libapache2-mod-dnssd并重新启动。单击此链接进行安装,或在软件中心找到libapache2-mod-dnssd。
安装完成后,转到System ? 喜好 ?个人文件共享,然后选中“在网络上共享公共文件”框。
全部完成后,您应该能够查看网络上允许在 Public 文件夹中共享公共文件的所有其他计算机。只需点击地点?Network,然后您应该会看到所有可用的计算机及其共享的公共文件夹。
双击服务器图标将在您的桌面上安装相关的公共文件夹。
通过链接文本
小智 7
您可以简单地在 linux 机器上运行一个 simpleHTTP 服务器并在另一台机器上访问它。
脚步 :
python -m SimpleHTTPServer
ifconfig
.您可以在要下载的文件夹中获取所需的文件。
如果您希望在 Ubuntu 中无缝集成,并且对 Windows 兼容性不感兴趣,那么 SSH 就是您的最佳选择。
请参阅如何通过 LAN 在两台 Linux 计算机之间共享文件?
您可能需要使用以下命令安装 SSH 服务器:
sudo apt-get install openssh-server
Run Code Online (Sandbox Code Playgroud)
从客户端上的文件管理器应用程序,您可以通过以下方式访问服务器:
sftp://servername.local
Run Code Online (Sandbox Code Playgroud)
要从终端或以编程方式访问文件,请使用sshfs
在客户端的文件系统中创建安装点。
归档时间: |
|
查看次数: |
276160 次 |
最近记录: |