Auto-sync files or directories over SSH using fs.watch().
Comes with a nifty tool sshpair
that generates a public SSH key with
echo -e "y\n" | ssh-keygen -q -N "" -f ~/.ssh/sshync
and writes the result to ~/.ssh/authorized_keys
on the remote host. This prevents the password prompt from showing up every time we sync.
Ignore paths by adding them, one per line, to a file named .sshyncignore
in the provided source
folder.
$ npm install sshync -g
# generate a public SSH key (so we don't have to retype password)
# write to user@ip:~/.ssh/authorized_keys
$ sshpair <user@ip[:port]>
# initialize file auto-sync
$ sshync <user@ip[:port]> <source> <destination>
source: local source folder.
destination: remote destination folder.
$ git clone https://github.com/mateogianolio/sshync.git
$ cd sshync
$ sshpair [email protected]
generated ssh key to ~/.ssh/sshync.pub
[email protected]'s password:
[email protected]'s password:
~/.ssh/sshync.pub => ~/.ssh/authorized_keys
$ echo -e ".git\nnode_modules" > .sshyncignore
$ sshync [email protected] . /root/sshync
. => [email protected]:/root/sshync
ignore ./.sshyncignore
mkdir -p /root/sshync
[+] ./README.md => /root/sshync/README.md [399 bytes]
[+] ./package.json => /root/sshync/package.json [520 bytes]
[+] ./sshync.js => /root/sshync/sshync.js [3304 bytes]
[+] ./LICENSE.md => /root/sshync/LICENSE.md [1084 bytes]
# ... edit package.json ...
[/] ./package.json => /root/sshync/package.json [524 bytes]