Доброго дня.
Долгое время на домашнем компе стоял FreeSSHD с парольной аутентификацией (собственно и сейчас стоит) и туда с работы делаю бэкап рабочих файлов. Но тут админ наш сказал, что каждый день по 12 гигов хватит обновлять, придумай чего-нибудь. Я сразу вспомнил про rsync. Ну и конечно через ssh. Ранее никогда с rsync дело не имел, а так же про возможности shh лишь слышал, но сам никогда не пользовался. Появились вопросы, на которые гугл так ответа и не дал или я просто плохо искал. Но я старался.
======== 1 ========
Для начала решил настроить наконец то авторизацию по ключу. Сложностей ранее не возникало на winXP, но дома стоит win8.1 и возникли проблемы. Что бы я не делал, ssh пишет: Server refused public-key signature despite accepting key!
Мол, ключ вроде норм, но подписывать не буду. :-/
Долго разбирался, но так и не победил. Потом попробовал на работе аналогичное шаманство на Win2008Server. При запущенной ssh службе от Системной учетной записи, сервер выдает такую же ошибку. Если же перезапустить сервер от Администратора, то все проходит как по маслу. Затем, снова запускаю службу от имени Системной учетной записи и вуаля. Все работает! Больше такой ошибки не возникало, как не запускай сервер. Для меня – это странно. С домашним компом так и не разобрался пока.
======== 2 ========
В процессе тестирования на домашнем компе хотелось бы перезапускать удаленно службу, но как это сделать, ума не приложу.
При подключении через shell-ssh и ввода: net stop FreeSSHDService && net start FreeSSHDService
Запуска службы не происходит. Собственно это очевидно (но я все равно проверил)
Какие способы перезапуска служб одной командой имеются? Не подскажите ли?
net restart FreeSSHDService тоже не работает (я проверял) :-)
======== 3 ========
Что еще интересного. При подключении к shell-ssh с помощью plink в консоли куча мусора:
Using username "test".
←[1;1HMicrosoft Windows [Версия 6.0.6002]←[2;1H(C) Корпорация Майкрософт, 2006.
Все права защищены.←[4;1HC:\Windows\system32>←[4;1HC:\Windows\system32>d←[4;1HC:\Windows\system32>di←[4;1HC:\Windows\system32>dir
Если подключиться через putty, то все идеально, а если так
i:\Portable\WINSCP~1.3\Putty>plink test
где test – это сохраненная сессия putty, то опять мусор.
Странно.
======== 4 ========
Сначала я думал, что на домашнем компе запущу rsync в качестве демона, проброшу порты в роутере и буду заворачивать каким то макаром через ssh. Оказалось, что все это не нужно, есть другой способ. Запускаю rsync-daemon на сервере. На клиенте делаю так:
ssh.exe -L 9999:localhost:873 test@ServerIP (ну или plink, это не важно)
И сама синхронизация:
rsync.exe -avz --progress --port 9999 /cygdrive/c/test/ user@127.0.0.1::drive_c/test/
Собственно и все работает и что здорово - открыт всего 1 порт. Было бы неплохо избежать команды: ssh.exe -L 9999… Возможно ли? А как потом убить процесс ssh на клиенте или пусть висит постоянно?
Но ведь ssh – мощная штука и мне бы не хотелось, что бы я все это настраивал, а потом бы надо мной ржали. Подскажите. Это правильно? Может есть другой способ, более простой?
Нас невозможно сбить с пути, нам пофигу куда идти.