rsync skrz ssh (a jen ssh)
To |
czdebian-l zavinac debian bod cz |
From |
Jan Hradek <twider zavinac volny bod cz> |
Date |
Wed, 05 May 2004 21:06:35 +0200 |
User-agent |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031107 Debian/1.5-3 |
Zdravim,
pokousim se rozbehat rsync pres ssh (a jen ssh). Z man rsyncd.conf jsem
si v sekci "RUNNING AN RSYNC SERVER OVER A REMOTE SHELL PROGRAM" /
"ADVANCED" precetl ze musim vlozit prikaz
"rsync --server --daemon ."
pripadne
"rsync --server --daemon --config=/cesta/k/rsyncd.conf ."
do volby COMMAND v ~/.ssh/authorized_keys prislusneho uzivatele (zde
dady). Rsync demon se pote spousti pri uspesnem prihlaseni pres ssh pres
prislusny klic.
Co jsem tedy udelal:
(kratoucky rsyncd.conf jen na rozbehani)
$cat /dev/stdin > /home/dady/rsyncd.conf
[mymodule]
path=/tmp
comment=blabla
CTRL+D
(zajistit prava /home/dady/rsyncd.conf)
$chmod 644 /home/dady/rsyncd.conf
(vygenerovat klic pomoci ssh-keygen)
$ssh-keygen -t rsa
[kam umistit]: enter
(defaultne je /home/dady/.ssh/id_rsa + /home/dady/.ssh/id_rsa.pub)
[passphrase]: enter (zadne heslo pro klic)
[passphraserepeat]: enter (jen pro zopakovani)
(vytvorim identity a authorized_keys - zatim zkusim rsync jen lokalne
pres ssh - stejny uzivatel = dady)
$cp /home/dady/.ssh/id_rsa /home/dady/.ssh/identity
$cp /home/dady/.ssh/id_rsa.pub /home/dady/.ssh/authorized_keys
(zajistim spravna prava pro identitu a authorized_keys)
$chmod 644 /home/dady/.ssh/authorized_keys
$chmod 600 /home/dady/.ssh/identity
(prvni zkouska - ssh bez hesla)
$ssh localhost
(prihlaseni bez hesla v naproste pohode)
(zkusim rsync pres ssh - bez configu bez "force command" v
authorized_keys, stale pod userem dady, jedna dvojtecka zajisti ssh, bez
modulu to vypise "nabizene" moduly)
$rsync localhost:
(vypise obsah adresare /home/dady, proc?)
(zkusim i verbose jak rsyncu tak ssh)
$rsync -vv -e "ssh -v" localhost:
(mimojine vypise prikaz co si rsync na "vzdalene" masine spusti)
...
debug1: Sending command: rsync --server --sender -vvr .
...
(ted zacnou problemy; podle "RUNNING AN RSYNC SERVER OVER A REMOTE SHELL
PROGRAM" / "ADVANCED" pridam "force command")
$touch /home/dady/.ssh/ak47
$echo -n "command=\"rsync --server --daemon \
--config=/home/dady/rsyncd.conf .\" " > /home/dady/.ssh/ak47
$cat /home/dady/.ssh/authorized_keys >> /home/dady/.ssh/ak47
$mv /home/dady/.ssh/ak47 /home/dady/.ssh/authorized_keys
(takze ted po nalogovani vlezu rovnou do rsyncu)
$ssh localhost
(vybehne)
@RSYNCD: 28
(tim mi hlasi verzi protokolu a ted to ceka na komunikaci s klientem)
(ctrl+c, zkusim rsync)
$rsync localhost:
(vypise)
protocol version mismatch - is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(69)
(s detailama)
$rsync -vv -e "ssh -v" localhost:
(vypise detaily)
...
debug1: Remote: Forced command: rsync --server --daemon
--config=/home/dady/rsyncd.conf .
debug1: Authentication succeeded (publickey).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: Sending command: rsync --server --sender -vr .
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
protocol version mismatch - is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(69)
...
(v man strance radi podivat se co leze z ssh pres)
$ssh localhost /bin/true > data.out
(data.out by mel byt prazdny, ovsem bezi tam rsync takze se do data.out
zapise @RSYNCD: 28 a pak to ceka na dalsi prikazy, takze to musim
CTRL+C-nout. Pokud vyhodim z authorized_keys option COMMAND tak tento
test probehne v poradku, takze ssh je v tom uplne nevinne. rsync si
defacto stezuje sam na sebe, resp. na me).
Mate nejake napady co s tim? Chtel bych proste rozbehat rsync s modulama
jen pres ssh.
Jan Hradek
PS.: je to defacto offtopic ale list linux.cz je na me moc "velkej".
Partial thread listing: