zssh — интерактивный обмен файлами по ssh

zsshПрограмма zssh позволяет обмениваться файлами с удаленным сервером подключенным по ssh или telnet прямо в интерактивном режиме без необходимости открывать ещё одно соединение. Правда соеденятся придется не обычной командой ssh (или telnet), а zssh server (или telnet server).
Если что то, zsh здесь не при чем, ибо расшифровывается имя программы как Zmodem SSH. Собственно файлы и передаются через протокол zmodem с помощью команд sz и rz.

Соединяясь с сервером до приглашения удаленной командной строки мы видим строку «Press ^@ (C-Space) to enter file transfer mode, then ? for help» что как бы намекает на нужную escape-последовательнось… т.е. говорит прямо — нажми Ctrl+пробел для входа в режим передачи файлов.
Войдя в режим мы можем лишь принять уже существующую передачу, либо отправить файл со своего компьютера. В общем дело не хитрое, однако требующее что бы на удаленном и нашем компьютерах стоял lrzsz (который, собственно, и обеспечивает команды sz и rz).

Итак, для передачи файла нажимаем Ctrl+пробел вводим sz имя_локального_файла и видим радостное сообщение «Transfer complete». Для принятия файла пишем в удаленной консоли sz им_файла_с_удаленного_сервера после чего нажимаем нужную escape-последовательность и вводим rz приняв тем самым файл с удаленного сервера.

У команды zssh есть возможность изменить escape-последоватльность, у sz/rz тоже есть свои параметры, хотя мне хватает и минимума для интерактивной передачи файлов…

P.S. Ищите в репозиториях вашего дистра!
Nao 13-02-2013
Удобнее использовать lftp sftp://server
На клиенте нужен установленный lftp
На сервере - sshd с разрешённым sftp (обычно влючено по-умолчанию).
muhas 13-02-2013
а команды в удаленной консоли как? или mc какой-нить запустить на удаленном серваке
да и костылить что бы lftp ключи цеплял
так проще тады sshfs пользовать…
lm_ 13-02-2013
просто пишем в lftp shell.
gwinn 13-02-2013
Самое интересное, что в данном посте меня заинтересовало наличие тега , про который я как-то раньше и не слышал :)
gwinn 13-02-2013
Я про тег kbd
muhas 13-02-2013
@lm_ ну запусти в lftp aptitude update или mc, там же ужасть, а тут все прелести обычного ssh соединения + плюшка для обмена файлами

@gwinn о полон мир открытий чудных. сам узнал случайно не из спецификации и лишь потом полез смотреть в спеки что да как
Прохожий 13-02-2013
соединяясь
muhas 13-02-2013
@Прохожий спасибо, поправил.
Amber 13-03-2013
Z-modem? Ну и зачем этот скелет из шкафа? Есть феншуйный scp, что ещё нужно?!!
muhas 13-03-2013
@Amber этот скелет упрощает работу, сделаешь простое копирование в уже запущенной сессии ssh так как это сделано через zssh? (нажал хоткей, имя файла. у себя получил, или наоборот), с scp сие не очень удобно
Amber 13-03-2013
Как раз таки Z-modem и неудобен, а тёплый ламповый scp в любой момент запускается из любой сессии

scp host:/path/filename

что тута не удобного? :)
muhas 13-03-2013
работаешь ты в удаленной консоли в каталоге /dsfasd/asdfasdfasd/asdfadsflkjasdfpwe/afad и надо тебе туда файлик залить, что ты делаешь как Ъ - открываешь новую вкладку (или в текущей отсоединяешься от уже существующего ssh соединения) scp blabla server:копипасченый путь и возможно ещё раз придется авторизоваться на сервере. с zssh ты в текущейм соединении нажимаешь хоткей вводишь sz blabla (без всяких там server:путь, и возможно дополнительной авторизации на сервере), а у себя где надо rz. количество шагов и нажатий на клаву для обычного копирования файла уменьшелось — профит.
Amber 13-03-2013
работаю я в xterm в ssh-сессии на remote-host в дирьке /dsfasd/asdfasdfasd/asdfadsflkjasdfpwe/afad, приходит нужда скопировать туда файл, открываю ещё один xterm и пишу в нём:

scp filename remote-host:/dsfasd/asdfasdfasd/asdfadsflkjasdfpwe/afad

причём /dsfasd/asdfasdfasd/asdfadsflkjasdfpwe/afad просто копирую одним движением из первого xterm. Всё!

А если мне нужно будет скопировать дирьку с потрохами, то scp -r

и работает это везде, где есть ssh
muhas 13-03-2013
а у мя просто sz filename без копипастов
но scp, конечно, никто не отменял