在 Kali Linux 中配置 SSHFS 主要分为 服务端配置(允许其他设备挂载 Kali 的文件系统)和 客户端配置(Kali 作为客户端挂载其他设备的文件系统)。以下是详细步骤:
一、服务端配置(允许 Windows 挂载 Kali 的文件系统)
1. 安装 SSHFS 服务端组件
确保 SSH 服务(sshd
)和 SSHFS 已安装并运行:
bash
sudo apt update
sudo apt install openssh-server sshfs
sudo systemctl enable --now ssh # 启用并启动 SSH 服务
2. 创建用于挂载的目录(可选)
若需共享特定目录,可创建并设置权限:
bash
mkdir /home/kali/shared
chmod 755 /home/kali/shared
3. 优化 SSH 安全性(推荐)
编辑 /etc/ssh/sshd_config
:
bash
sudo nano /etc/ssh/sshd_config
添加以下配置:
conf
PermitRootLogin no # 禁止 root 登录
PasswordAuthentication no # 禁用密码认证(仅密钥)
PubkeyAuthentication yes # 启用密钥认证
AllowUsers kali # 仅允许 kali 用户(可替换为你的用户名)
重启 SSH 服务:
bash
sudo systemctl restart ssh
4. 生成 SSH 密钥对(若使用密钥认证)
在 Windows 端使用 PuTTYgen 生成密钥对,并将公钥添加到 Kali 的 ~/.ssh/authorized_keys
:
bash
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "你的公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
二、客户端配置(Kali 挂载其他设备的文件系统)
1. 安装 SSHFS 客户端
Kali 已预装 SSHFS,若缺失可安装:
bash
sudo apt install sshfs
2. 创建本地挂载点
bash
mkdir -p ~/mnt/windows_share
3. 挂载远程文件系统
使用以下命令挂载 Windows 共享目录(需替换 IP、用户名、路径):
bash
# 密码认证方式
sshfs username@windows_ip:/path/to/shared Z:
# 密钥认证方式(需指定私钥路径)
sshfs -i /path/to/private_key username@windows_ip:/path/to/shared Z:
4. 自动挂载(推荐)
编辑 /etc/fstab
添加永久挂载:
bash
sudo nano /etc/fstab
添加一行(需替换 IP、用户名、路径):
plaintext
username@windows_ip:/path/to/shared /home/kali/mnt/windows_share fuse.sshfs defaults,auto,users 0 0
手动挂载所有 fstab 条目:
bash
sudo mount -a
三、常见配置参数
挂载时可通过 -o
选项指定参数,例如:
bash
sshfs username@server:/remote/path /local/mount \
-o allow_other \ # 允许其他用户访问挂载点
-o uid=1000,gid=1000 \ # 指定文件所有者 UID/GID
-o IdentityFile=/path/to/private_key \ # 指定私钥路径
-o reconnect \ # 自动重连
-o cache=yes \ # 启用缓存提高性能
四、验证配置
1. 服务端验证
在 Windows 端使用 SSHFS-Win 连接时,输入以下信息:
- 服务器:Kali 的 IP 地址
- 用户名:Kali 用户名(如
kali
) - 密码 / 密钥:对应认证方式的凭证
- 远程路径:如
/home/kali/shared
2. 客户端验证
在 Kali 终端中查看挂载点内容:
bash
ls ~/mnt/windows_share
五、故障排除
- 挂载失败,提示 “Permission denied”
- 检查 SSH 密钥权限(
~/.ssh
目录应为 700,密钥文件应为 600)。 - 确保
/etc/fuse.conf
中启用了user_allow_other
。
- 检查 SSH 密钥权限(
- 连接超时
- 检查防火墙是否开放 SSH 端口(默认 22):
sudo ufw allow 22/tcp
- 文件权限异常
- 挂载时指定
uid
和gid
参数匹配本地用户:
- 挂载时指定
sshfs -o uid=$(id -u),gid=$(id -g) ...
通过以上配置,Kali Linux 可同时作为 SSHFS 服务端和客户端,实现与 Windows 或其他 Linux 系统的双向安全文件传输。