Ещё одна задачка в продолжение предыдущего поста..
Итак, имеется машинка, на которой начал подыхать диск. ОС пока работает, большинство программ запускается, но единственная файловая система автоматически перемонтировалась в read-only. Машинка на внешнем хостинге, физического доступа к ней нет. Туда пока ещё можно зайти по ssh, но только из корпоративной сети, с фиксированного публичного IP.
Пока диск не подох окончательно, надо срочно скопировать оттуда в корпоративную сеть кучку особо ценных файликов. Но файлики доступны только руту, а по ssh под ним, естественно, не пускают, только через su/sudo.
Подправить конфиг sshd, поменять права на файлики или создать из них читабельный для ssh-юзера архив невозможно по вышеозначенной причине.
scp c той машинки работает, но входящие соединения в корпоративную сеть строго блокируются файрволом, только исходящие можно, да и те не куда попало. Перекидывать файлики через другую внешнюю машинку низзя, нарушение политики безопасности.
Ну и как всё же скопировать оттуда файлики в корпоративную сеть?
Хинт: довольно простое решение существует.
Оригинал этой записи в личном блоге.
no subject
no subject
no subject
no subject
:: scp c той машинки работает, но входящие соединения в корпоративную сеть строго
:: блокируются файрволом, только исходящие можно, да и те не куда попало. Перекидывать
:: файлики через другую внешнюю машинку низзя, нарушение политики безопасности.
no subject
no subject
sudo: sorry, you must have a tty to run sudono subject
ssh -t remote-host....
no subject
довольно бессмысленное требование. Если парол надо спрашивать, то надо. А еси нет, то и tty не нужен.
no subject
no subject
можно у себя поднять netcat и прососать к себе через ssh-туннель обратный через netcat с той стороны.
можно вообще через su или sudo запустить и из stdout забрать и у себя сложить. можно построить костылей, чтобы сразу залить туда, куда можно по политике безопасности.
no subject
no subject
no subject
no subject
no subject
Ну засунь пароль прямо в команду, и считай ее в sudo через -S (echo pass |sudo -S ...). Несекьюрно, конечно, но это в задаче не требовалось.
P.S. Ну и вариант с ssh -R никуда не делся. там через nc засовывать в туннель, а у себя через тот-же nc ловить... Но как по мне, так оно выглядит более костылем.
no subject
no subject
a на удаленном - tar -cf - filelist |nc localhost someport
предварительно подняв туннель с someport на локальный someport (ssh -R someport:localhost:someport user@remotehost).
no subject
no subject
no subject
Собственно, весь вопрос, как я понимаю, именно в организации потока. При том, что один конец этого потока в корпоративной среде, куда снаружи не пробиться. Все коннекты только изнутри.
no subject
Второй вариант - зайти на ту машину через ssh -R 2222:localhost:22 и скопировать обычным scp -P 2222. Я так постоянно делаю, когда мне хочется в офис проникнуть без корпоративного VPN.
no subject
Только без нервов. :)
no subject
Ну, и избежать read-only можно при помощи всяких tmpfs/memoryfs и loopmounts ;P
no subject
no subject
no subject
no subject
no subject