我有一个远程服务器,其中有一个由 root 和一个组拥有的文件夹。该组具有写入权限,并且我的用户在该组中。
但是,当我尝试使用 /ssh:user@server:/folder/file 编辑文件并保存它时,它告诉我该文件已写保护,并尝试使用 /sudo:root@server:/ 编辑该文件文件夹/文件。
虽然这确实有效,但我对此感到担心,因为这确实不应该发生。
在远程服务器上使用 ssh 和 nano 就可以了。我真的不明白为什么流浪汉会失败......
使用 /sshfs:user@server:/folder 然后导航到该文件即可。
但是,这会阻止我之后使用 ssh,例如当我使用 /ssh:user@server|sudo::/etc/somefile 编辑一些具有 root 权限的文件时,它似乎试图通过开放的 sshfs 路由并告诉我 sshfs 不支持此功能。
另外,我尝试过使用 /ssh:user@server|sg:group@server:/file 进行 sg,但以多种方式失败。
Tramp 无法连接的潜在原因有多种。 其中之一是远程计算机外壳的提示符。 它必须很简单,否则 Tramp 可能无法检测到它。
为此,您可以更新
tramp-shell-prompt-pattern
用户选项,或者利用 Tramp 在连接时将 TERM
环境变量设置为“dumb”这一事实来修改远程 shell 配置。
请参阅 Tramp FAQ,例如,建议使用 Zsh shell 将以下行添加到远程计算机的
~/.zshrc
文件中:
[[ $TERM == "dumb" ]] && unsetopt zle && PS1='$ ' && return
对于 Bash,您需要做一些等效的事情。 在所有情况下,您还希望防止提示中的转义序列,例如着色等...
您可能还想通过将 tramp-verbose Emacs Lisp 变量设置为 10 来激活 TRAMP 跟踪缓冲区,然后在 TRAMP 失败时检查跟踪。
Tramp 用户手册中有很多信息也可能有帮助。