Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: ssh: удержание открытого сеанса / ssh: keep session open  (Прочитано 1276 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ArcFi

  • Автор темы
  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Имеется удалённый сервер:
  • ubuntu-10.04
  • ssh, аутентификация по ключу (public key authentication)
  • шифрованный хомяк ($HOME@ecryptfs)

Требуется выполнить rsync из локального $HOME на клиенте в смонтированный удалённый $HOME на сервере.

Примонтировать удалённый $HOME можно таким образом:
ssh "$RUSER@$RHOST" -p "$RPORT" -i "$KEYFILE" \
        "echo \"$PASSPHRASE\" | ecryptfs-insert-wrapped-passphrase-into-keyring ; mount.ecryptfs_private"

Однако, после этого система считает, что сессия завершается и происходит автоматическое отмонтирование удалённого хомяка.
Соответственно, rsync выполняется не туда, куда нам нужно.

Если предварительно подставить вот такой костыль:
gvfs-mount "sftp://$RUSER@$RHOST:$RPORT"то всё получается, но во-первых, это костыль; во-вторых, без гнома не работает.

Вопрос: как более грамотно сделать, чтобы между командой монтирования удалённого домашнего каталога и выполнением rsync сессия держалась открытой?

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Может так прокатит:
ssh "$RUSER@$RHOST" -p "$RPORT" -i "$KEYFILE" \
        "echo \"$PASSPHRASE\" | ecryptfs-insert-wrapped-passphrase-into-keyring ; mount.ecryptfs_private; cat"

Оффлайн shumtest

  • Активист
  • *
  • Сообщений: 731
  • Это вам просто кажется...
    • Просмотр профиля
    • Блог Шумомера
Через sshfs?

Оффлайн ArcFi

  • Автор темы
  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Может так прокатит...
Не работает: висит и ждёт ввода, и "&" в конце для запуска в фоне не помогает.

Через sshfs?
Тоже об этом подумывал, только почему-то связка rsync+sshfs вызывает ассоциацию маслом масляным, поэтому отодвигал этот вариант на крайний случай. Видимо, имеет смысл попробовать.

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Не работает: висит и ждёт ввода, и "&" в конце для запуска в фоне не помогает.
Так вроде этого и надо было добиться, т.е. чтобы сессия не рвалась? И что, если rsync запустить, пока сессия висит, то всё равно не работает?

Гарри Кашпировский

  • Гость
Имеет смысл смотреть в сторону expect ?

Оффлайн ArcFi

  • Автор темы
  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Так вроде этого и надо было добиться, т.е. чтобы сессия не рвалась? И что, если rsync запустить, пока сессия висит, то всё равно не работает?
Тогда второй скрипт нужен, по идее, или что-то типа такого:
( ssh ... "... ; cat" ) &
sleep 5

Или поизвращаться с nohup/dtach/disown...

Имеет смысл смотреть в сторону expect ?
Едва ли... Хотя, хз, я с ним знаком весьма поверхностно.

ps
Вообще, думаю, надо поднимать ecrypts/encfs@sshfs, т.е. выполнять монтирование на стороне клиента.

 

Страница сгенерирована за 0.016 секунд. Запросов: 22.