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 连接的步骤。
运行 在本地机器上执行以下命令生成所需的 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
在 Compute Engine 控制台中,编辑 VM 设置以添加生成的 SSH public 密钥的内容。可以找到详细说明 here.
启动从本地计算机到笔记本 VM 的 SSH 连接:
ssh -i ~/.ssh/jupyter-ssh-key jupyter@<external-ip-of-notebook-vm-instance>
如果SSH连接成功,同样可以在VSCode.
在 VSCode 中,select 命令面板中的“远程 SSH:连接到主机”选项。输入上面的 ssh -i 命令将笔记本 VM 实例添加为可识别的主机。一个新的 VSCode window 将出现在我们作为“jupyter”用户登录的地方。
我正在尝试设置对使用 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 连接的步骤。
运行 在本地机器上执行以下命令生成所需的 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
在 Compute Engine 控制台中,编辑 VM 设置以添加生成的 SSH public 密钥的内容。可以找到详细说明 here.
启动从本地计算机到笔记本 VM 的 SSH 连接:
ssh -i ~/.ssh/jupyter-ssh-key jupyter@<external-ip-of-notebook-vm-instance>
如果SSH连接成功,同样可以在VSCode.
在 VSCode 中,select 命令面板中的“远程 SSH:连接到主机”选项。输入上面的 ssh -i 命令将笔记本 VM 实例添加为可识别的主机。一个新的 VSCode window 将出现在我们作为“jupyter”用户登录的地方。