GCP Notebook AI——具有写入权限的 SSH?

GCP Notebook AI -- SSH with write permissions?

我正在尝试设置对使用 Notebooks AI 设置的 GCP VM 的远程访问(使用 VSCode)。但是,当我通过 ssh 进入虚拟机时,我没有 /home/jupyter 的写入权限,因此无法编辑任何笔记本文件。

我已经尝试了 gcloud compute ssh 并使用 gcloud compute config-ssh 设置了本地别名。

我最好的猜测是用户不同。看起来 JupyterLab 上的终端以 jupyter@[instance...] 登录,而当我在其 myname@[instance...] 中使用 ssh 时。检查 /home/jupyter/ 的权限,它属于组 jupyter 的用户 jupyter。我还尝试使用 sudo usermod -a -G 将用户添加到 jupyter 组,但这并没有奏效。当我尝试从其他任何地方以 jupyter@[instance...] 身份 ssh 时,我得到 permission denied (public key).

如果我使用 sudo vim ...,我可以在登录后编辑文件,但这对 VS 代码没有帮助。


编辑:部分解决方案是使用 sudo chmod 777 /home/jupyter/* 打开权限。但是,这可能是一种骇人听闻的、不安全的方式。此外,它仅适用于现有文件——新文件仍然只能由创建它们的用户写入。

要以“jupyter”用户身份通过​​ SSH 连接到笔记本实例,应为该用户生成 SSH 密钥并将其添加到笔记本 VM 实例。此外,请确保笔记本实例 VM 具有 appropriate firewall rule 以允许 SSH 连接。以下是创建与具有写入权限的“jupyter”用户的 SSH 连接的步骤。

  1. 运行 在本地机器上执行以下命令生成所需的 SSH 密钥:

     ssh-keygen -t rsa -f ~/.ssh/jupyter-ssh-key -C jupyter
    

    “jupyter-ssh-key” → public 和私钥对的名称(Public 密钥:jupyter-ssh-key.pub,私钥:jupyter-ssh -键)

    “jupyter” → 我们尝试连接的 VM 中的用户

     chmod 400 ~/.ssh/jupyter-ssh-key
    
  2. 在 Compute Engine 控制台中,编辑 VM 设置以添加生成的 SSH public 密钥的内容。可以找到详细说明 here.

  3. 启动从本地计算机到笔记本 VM 的 SSH 连接:

     ssh -i ~/.ssh/jupyter-ssh-key jupyter@<external-ip-of-notebook-vm-instance>
    

    如果SSH连接成功,同样可以在VSCode.

  4. 在 VSCode 中,select 命令面板中的“远程 SSH:连接到主机”选项。输入上面的 ssh -i 命令将笔记本 VM 实例添加为可识别的主机。一个新的 VSCode window 将出现在我们作为“jupyter”用户登录的地方。