如何让“位置”>“连接到服务器...”默认使用 SSH 而不是 FTP

如何让“位置”>“连接到服务器...”默认使用 SSH 而不是 FTP

我经常使用“位置”>“连接到服务器...”并始终使用 SSH 连接。

连接到服务器对话框总是默认选择服务类型为公共 FTP。

有没有办法改变这一点,使服务类型始终默认为 SSH?

答案1

我没有看到任何相关的参数、配置文件或 gconf 设置可用于更改默认选项,所以我想您必须重新编译该nautilus包。

你应该下载源码包首先,可能要编辑/src/nautilus-connect-server-dialog.c

关于如何编译 nautilus 的更多信息可以在以下链接中找到:

http://ubuntuforums.org/showthread.php?t=1049716

http://ubuntuforums.org/showthread.php?t=1678656

答案2

感谢 Pavlos G. 提供的信息和链接。阅读链接并进行几次 Google 搜索后,我重新整理了以下内容:

sudo apt-get build-dep nautilus # get build dependencies 
apt-get source nautilus # get nautilus source
cd nautilus-2.32.2.1
patch -p1 < ../sftp_default.patch # apply patch to set sftp (SSH) to default protocol
dpkg-buildpackage -rfakeroot -uc -b # build .deb files
cd ..
sudo dpkg -i *.deb # install .deb files

其中 sftp_default.patch 包含:

diff -ruN nautilus-2.32.2.1.a/src/nautilus-connect-server-dialog.c nautilus-2.32.2.1.b/src/nautilus-connect-server-dialog.c
--- nautilus-2.32.2.1.a/src/nautilus-connect-server-dialog.c    2011-08-21 16:00:30.720119356 +1200
+++ nautilus-2.32.2.1.b/src/nautilus-connect-server-dialog.c    2011-08-21 16:00:36.250910768 +1200
@@ -96,9 +96,9 @@
 /* Remember to fill in descriptions below */
 static struct MethodInfo methods[] = {
    /* FIXME: we need to alias ssh to sftp */
-   { "sftp",  SHOW_PORT | SHOW_USER },
+   { "sftp",  DEFAULT_METHOD | SHOW_PORT | SHOW_USER },
    { "ftp",  SHOW_PORT | SHOW_USER },
-   { "ftp",  DEFAULT_METHOD | IS_ANONYMOUS | SHOW_PORT},
+   { "ftp",  IS_ANONYMOUS | SHOW_PORT},
    { "smb",  SHOW_SHARE | SHOW_USER | SHOW_DOMAIN },
    { "dav",  SHOW_PORT | SHOW_USER },
    /* FIXME: hrm, shouldn't it work? */

为了检查是否可以将 Nautilus 恢复为默认的 Ubuntu 包,我使用了:

sudo apt-get install --reinstall nautilus

效果非常好,再次感谢 Pavlos G。

我发现http://ubuntuforums.org/showthread.php?t=101097有助于重新编译软件包。

相关内容