Docker 容器中使用 sshfs 挂载远程目录时出现 “permission denied” 的解决方法

背景

在前端开发中,经常需要在本地进行开发调试,但有时需要在远程服务器上进行开发,这时,我们可以使用 sshfs 将远程服务器上的目录挂载到本地进行开发。

而在 Docker 容器中,我们同样可以使用 sshfs 挂载远程目录,但在实际使用中,可能会遇到 “permission denied” 的问题,本文将为大家介绍如何解决这个问题。

解决方法

方法一:修改 sshd_config 文件

在远程服务器上,我们需要修改 sshd_config 文件,将以下两行代码的注释去掉:

---------- ---- ----------------------------
--------- ---- -------------

然后添加以下代码:

----- ---- -------------
    ------------- --
    ------------------ --
    --------------- --
    ------------ -------------

其中,your_username 是你的用户名,%h 表示用户的家目录。

修改后,重启 ssh 服务:

---- ------- --- -------

方法二:在 Dockerfile 中添加用户

在 Dockerfile 中,我们可以添加一个与远程服务器上的用户相同的用户,然后在容器中使用该用户进行 sshfs 操作。

首先,在 Dockerfile 中添加以下代码:

--- -------- -- ---- ------------- -- -
    ------- -- ---- -- ---- -- ------------------- -- --------- ------------- -- -
    ----- -- ------------------------ -- -
    ----- -- --------------------------- -------------------

其中,your_username 是你的用户名。

然后,在容器中使用该用户进行 sshfs 操作:

----- -- ----------------------------------------- -------------------------------------- -----------

示例代码

- ----------
---- -----------

- ------- -----
--- ------- ------ -- ------- ------- -- -----

- --- ----
--- -------- -- ---- ------------- -- -
    ------- -- ---- -- ---- -- ------------------- -- --------- ------------- -- -
    ----- -- ------------------------ -- -
    ----- -- --------------------------- -------------------

- --- ------- ---------
------- ----

- ----- ------ ---------
--- ----- -- ----------- -- -
    ----- -- --------------------------- -----------

---- -------------

- ----- ------ ---------
--- ----- -- ----------------------------------------- -------------------------------------- -----------

--- ------- --------

总结

本文介绍了在 Docker 容器中使用 sshfs 挂载远程目录时出现 “permission denied” 的解决方法,包括修改 sshd_config 文件和在 Dockerfile 中添加用户两种方法。希望本文对大家有所帮助。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/66029a68d10417a222e67e01