GUI для подключения сетевых томов через SSH

    Моё приложение является обычной «мордой» к консольному приложению sshfs и доступно для скачивания по адресу code.google.com/p/sshfs-gui. Оно было написано мной для обучения программированию под Cocoa и является моим первым графическим приложением под Mac OS X.

    Установка и использование


    Для установки приложения необходимо выполнить следующие действия:



    Для того, чтобы смонтировать какой-либо том, заполните необходимые поля (в случае авторизации по SSH ключам пароль вводить не обязательно) и нажмите Connect.

    Важно: Если вы ни разу до этого не соединялись с указанным вами хостом по SSH, то необходимо перед этим соединиться с хостом по SSH, набрав в Терминале указанную ниже строчку и добавив хост в список известных (то есть, ввести «yes» в начале).

    $ ssh login@server

    Если соединение пройдет успешно, то после этого в Finder откроется смонтированный сетевой том. Вы можете, потянув за иконку тома в заголовке Finder, перетащить сетевой том в боковую панель Finder в раздел «Устройства (Devices)», и тогда этот том будет там отображаться всегда, когда подключен этот сетевой том.

    P.S. Приложение сделано «на скорую руку» и не может обрабатывать корректно все возможные ситуации. Для этого предусмотрена кнопка «Stop» :). Также, у приложения отсуствует своя иконка и About-диалог со справкой. Если есть желание помочь в улучшении приложения — обращайтесь.

    Скринкаст


    Не могу не удержаться и опубликовать небольшой скринкаст, в котором наглядно показывается, как это всё работает.


    Доп. материалы, благодарности

    Планы на будущее:

    • Добавить возможность указывать порт подключения
    • Проверять логин и имя сервера на допустимость
    • Не заставлять пользователей входить по SSH вручную в первый раз
    • Предлагать запоминать пароли в Keychain

    «Аналоги»

    • MacFusion: www.macfusionapp.org

      Будьте осторожны, MacFusion во время работы отключает проверку RSA отпечатков сервера, что может не входить в ваши планы. После того, как установите MacFUSE и MacFusion.app, выполните в консоли команду
      mv /Applications/Macfusion.app/Contents/PlugIns/sshfs.mfplugin/Contents/Resources/sshnodelay.so /Applications/Macfusion.app/Contents/PlugIns/sshfs.mfplugin/Contents/Resources/sshnodelay.so.bak

      За информацию спасибо noma4i
    • FUSE под Windows: dokan-dev.net/en/download

      Спасибо за ссылку пользователю gromka
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 34

      +2
      You ROCK!
        +1
        Да не особо. Я писал это приложение для себя и своих знакомых, чтобы не возиться каждый раз с консолью и указывать папку для монтирования.

        Почему-то в MacFUSE последних версий забили на приложение sshfs.app, и перестали его поставлять вместе с дистрибутивом по умолчанию. Это приложение призвано решить данную проблему (и добавить новых, вероятно :)).
          +1
          Кстатида, макфуз совсем сломался, под SL я его еле завёл, и то еле пашет.
          Неужели совсем заглохли?
            +1
            Используй моё приложение, Дима :)).
              +1
              Юра, жду поддержки keychain (и вообще способнсоти сохранять соединения), после чего с удовольствием!

              Ещё кстати в макфузе можно было врубить сжатие, кеширование и прочие плюшки.
        +1
        о каг! я вчера как раз занимался проблемами монтирования ssh под Linux. Подумывал об написании гуи для пингвинов =)
          +1
          Для Linux таких программ полно, причём даже на хабре (к примеру: habrahabr.ru/blogs/python/52217/#habracut). Есть на питоне на GTK+ — www.youtube.com/watch?v=Y39Yw3Aguuw
            +1
            Мы не ищем легких путей =)
            Лишние строчки мну никогда не помешают.
              +1
              Кстати за наводку в виде ссылки спасибо.
            +1
            Очень мило!
              +1
              так есть же бесплатный MacFUSE который много лет уже делает то же самое, плюс еще больше фич
                +1
                Не спорю, просто GUI приложение из него исключили (предлагают теперь самому его из исходников компилировать).
                  +2
                  MacFusion как бы спасает :)
                  www.macfusionapp.org
                    +1
                    Извините, на моём 10.6 оно уже не работает (я поставил MacFUSE, перезагрузился, ..., пишет, что «mount process shut down unexpectedly» и всё на этом..)
                      +5
                      в терминале: mv /Applications/Macfusion.app/Contents/PlugIns/sshfs.mfplugin/Contents/Resources/sshnodelay.so /Applications/Macfusion.app/Contents/PlugIns/sshfs.mfplugin/Contents/Resources/sshnodelay.so.bak

                      и все будет работать :)
                        +1
                        Да, так действительно работает, спасибо :).
                +1
                очень даже неплохо для первого приложения
                  +1
                  А что на счет подключения с проверкой по открытому ключу? У меня на домашнем сервере(ubuntu 9.10) + комп(10.6.2) не заработало :(
                  Отписался в ишьюсах на гуглокоде.
                    +1
                    Я не проверял работу с авторизацией по ключам (потому что я её не использую из соображений безопасности), но в приложении нигде явно не предполагается, каким образом на самом деле будет осуществляться авторизация. Возможно, сам консольный mount_sshfs не умеет использовать ключи, тогда это не совсем недостаток моего приложения, а, скорее, той консольной утилиты, которая используется.
                    +1
                    Хорошо.
                    Очень важная фича, которой у Вас пока что нет – работа с ssh агентом, а именно возможности авторизации по ключу.
                    Хотя тогда приложение медленно, но верно разрастётся до связки pageant/winscp (для получения выгоды от собств введения passphrase нужно будет давать пользователям хранить закладки, к примеру, и монтировать несколько дисков в 1 приложении).
                      +1
                      Я не планирую превращать своё приложение в аналог WinSCP ни в коей мере. Моя цель — упростить монтирование SSHFS на Mac OS X до такой степени, чтобы этим можно было пользоваться, и оно работало без напильника, или по крайней мере с хорошо задокументированными напильниками :).
                      +1
                      MacFusion ssh реализация никак не хотела отслеживать состояние файла (к примеру если редактировать из 2х источников), либо вообще подвисала (это на 5 метровой витой паре 100мбит), так что развивайтесь :) вы нам очень нужны!
                        +1
                        а монтирование FTP и S3? еще добавить красивое окошко со списком серверов и т.п. и можно продавать :)

                        ЗЫ спасибо. супер.
                          0
                          ftp можно стандартными средствами монтировать (Finder -> Переход -> Подключение к серверу...)
                            0
                            это я знаю. я тут «маркетинговый план» предлагаю.
                            а в нем надо рассчитывать на тех кто не знает :)
                            0
                            Также как и WebDAV (ведь по такому протоколу работает S3, да?) — они монтируются с помощью Cmd+K в файндере.
                              0
                              угу. но это ж не наш метод…
                              надо гламурное окошко. в котором будет список серверов. кнопка «монтировать». еще иконка в строке меню. профили.
                              и цена в 39.95. ExpanDrive будет отдыхать :)
                            +2
                            Есть еще ExpanDrive ( www.expandrive.com/ ), поддерживает FTP/FTPS/SFTP(SSH)/Amazon S3
                            Один минус — программа не бесплатная
                              +1
                              и еще она часто теряет соединение.
                              +1
                              Я дико извиняюсь, но неужели во всем Adobe Creative Suite 4, который так хорошо виден в ролике, не нашлось подходящей аппликушки для создания иконки приложения?

                              От чего вы не ведете историю подключений?

                              Почему до монтирования sshfs тома не подключаться туда ssh и не принимать ключь автоматически? Почему бы не прочитать список ключей, и не проверить, а нет ли уже ключа этого сервера в системе?

                              Какого ляда вы кладете пароль в файл (!) .pass, который потом просто ulink'каете?

                              Стоит ли говорить о том, что убийство дочек через "/bin/kill `/bin/ps -ax | grep '/Applications/sshfs/bin/mount_sshfs %@@%@' | awk '{print $1;}'`" это сурово?

                              И, простите, я не заметил, но где в коде вы подчищаете за собой /Volumes? Или после 30 подключений к разным серверам там появится 30 безполезных пунктов?

                              Почему мне кажется, что это не приложение, а просто набор оберток вокруг великого и могучего шела?
                                0
                                Я дико извиняюсь, но неужели во всем Adobe Creative Suite 4, который так хорошо виден в ролике, не нашлось подходящей аппликушки для создания иконки приложения?

                                Я не дизайнер, и рисовать иконки у меня не получается. Если бы Вы видели, ЧТО я смог нарисовать в фотошопе в качестве «иконки»…

                                От чего вы не ведете историю подключений?

                                См. секцию «Планы на будущее».

                                Почему до монтирования sshfs тома не подключаться туда ssh и не принимать ключь автоматически? Почему бы не прочитать список ключей, и не проверить, а нет ли уже ключа этого сервера в системе?

                                Проблемы в том, что я пока что не придумал, как бы это получше реализовать :). Если бы я мог это добавить, не увеличивая размер кода в 10 раз, я бы это сделал.

                                Какого ляда вы кладете пароль в файл (!) .pass, который потом просто ulink'каете?

                                Это самый простой способ «сказать» пароль SSH — указать ей программу SSH_ASKPASS, в которую поместить пароль. Чтобы не мучаться с тем, как эскейпить пароль, я его помещаю в отдельный файл, который существует лишь в момент подключения, а затем удаляется. Я знаю, что есть другие способы передать пароль утилите SSH, и они, скорее всего, будут использованы в будущих версиях.

                                Стоит ли говорить о том, что убийство дочек через "/bin/kill `/bin/ps -ax | grep '/Applications/sshfs/bin/mount_sshfs %@@%@' | awk '{print $1;}'`" это сурово?

                                Убийство конкретно «дочек» происходит не таким радикальным методом, а выполняет простую шел-команду "/bin/ps -ajx | /usr/bin/awk '{ if($3 == %d) print $2; }'", getpid(). Тот же код, который Вы привели, нужен для быстрого убийства оставшихся процессов, которые остаются после убийства прямых потомков. Надеюсь, сомнений в том, что он убивает только то, что нужно, не должно быть, да (ибо вместо %@ и второго %@ подставляются соответственно логин и сервер)

                                И, простите, я не заметил, но где в коде вы подчищаете за собой /Volumes? Или после 30 подключений к разным серверам там появится 30 безполезных пунктов?

                                Чистить /Volumes не требуется, она сама себя очищает во время извлечения тома.

                                Почему мне кажется, что это не приложение, а просто набор оберток вокруг великого и могучего шела?

                                Вероятно потому, что Вы не прочитали первое предложение в моём посте, в котором описывается, ЧЕМ является моя программа по отношению к консоли.
                                0
                                если кому-то вдруг захочется смонтировать SSHFS диск в windows системе — могу посоветовать воспользоваться Docan SSHFS, получается аналог DropBox'a, но с хранением файлов на своем сервере :)
                                  0
                                  ссылка битая: pqrs.org/macosx/sshfs/index.html
                                    0
                                    ой, а посту-то больше года

                                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                  Самое читаемое