我目前在远程web服务器上编辑文件的解决方案是使用Fetch浏览远程机器,使用TextWrangler进行编辑。但是,由于我越来越习惯于在远程计算机上导航命令行(但不太习惯使用VIM...),我希望能够在远程计算机上键入类似“打开filename.txt”的内容,并在本地计算机上打开TextWrangler。我听说过“反向隧道”这个术语,但我不知道下一步该怎么做。我们非常感谢您的建议--谢谢!
发布于 2009-09-11 14:47:03
就我个人而言,我使用Cyberduck作为我的S/FTP浏览器。在Cyberduck的首选项中,您可以定义一个默认的文本编辑器来编辑远程文件。现在,当我选择一个文件时,只需点击Cmd+K,它就会在TextWrangler中打开。每当我保存时,更改都会自动传输到远程文件。
发布于 2011-02-07 16:24:44
实际上,我也想做同样的事情,但是没有人写出来,所以我今天弄明白了。
这有两个必需的部分和三个可选的部分:
您需要能够从本地ssh到远程以运行命令,并且您需要能够从远程到本地ssh,以便它可以向TextWrangler发送命令。
要设置ssh隧道,您需要在本地计算机上运行命令,如下所示:
ssh -f -N -R 10022:localhost:22 [username on remote machine]@[remote machine hostname]ssh和-N标志将ssh放在后台,让您留在机器上。-R标志将远程计算机上的端口绑定到本地计算机上的端口。在端口10022上联系远程计算机的任何内容都将发送到本地计算机上的端口22。远程端口可以是您想要的任何端口,但是您应该选择一个大于1024的端口以避免冲突,这样您就不必是root用户。我选择10022是因为它与ssh的默认端口22相似。将括号替换为您的用户名和计算机名。
您需要在登录后运行一次。为了使命令更容易使用,您可以在bash配置文件中添加别名。将以下内容添加到本地~/.bash_profile中
alias open-tunnel='ssh -f -N -R 10022:localhost:22 [username on remote machine]@[remote machine hostname]'当然,您可以选择您喜欢的任何别名。
一旦设置了隧道,就可以在远程机器上使用如下命令:
ssh -p 10022 [username on local machine]@localhost "edit sftp://[username on remote machine]@[remote machine hostname]//absolute/path/to/file.txt"-p标志指示使用端口10022 (或您之前选择的任何端口)。这将导致远程计算机连接到您的本地计算机,并在不打开交互式ssh会话的情况下执行双引号中的命令。引号中的命令是您将在本地计算机上运行的命令,用于在TextWrangler中打开远程文件。
为了简化命令,您可以在bash配置文件中添加一个函数。将以下内容添加到远程~/.bash_profile
function edit { if [[ ${1:0:1} = "/" ]]; then abs_path="$1"; else abs_path="`pwd`/$1"; fi; ssh -p 10022 [username on local machine]@localhost "edit sftp://[username on remote machine]@[remote machine hostname]/$abs_path"; }这里假设您没有在远程机器上安装TextWrangler命令行工具。如果这样做,则应该将函数命名为edit以外的其他名称。例如,tw。在这里,${1:0:1}查看函数的第一个参数的第一个字符,它应该是文件路径。如果不是以/开头,我们可以通过在开头添加当前工作目录(pwd)来确定绝对路径。现在,如果您使用/home/jdoe/some/directory/在远程计算机上运行edit some/other/directory/file.txt,则将在本地计算机上执行以下命令:
edit sftp://[username on remote machine]@[remote machine hostname]//home/jdoe/some/directory/some/other/directory/file.txt最后,您应该在两个方向上设置ssh密钥,这样就不会每次都提示您输入密码。这是另一个人写的指南:http://pkeck.myweb.uga.edu/ssh/
发布于 2012-11-14 16:26:55
我不认为这会允许从命令行打开,但是
带有Remote-System-Explorer的Eclipse还支持通过ssh连接编辑文件
https://stackoverflow.com/questions/1364826
复制相似问题