LoginSignup
0
1

More than 5 years have passed since last update.

SSHでログインと同時にローカルのファイルを同期する

Last updated at Posted at 2016-10-28

ローカルのマシンとリモートサーバーでEmacsの設定ファイル(~/.emacs.d/init.el)を同期したいことがあったので、スクリプトを書いてみました。

基本はscpとsshを続けてやっているだけですが、

  • SSHのログインはキーボードインタラクティブ認証
  • scpとsshで2回同じパスワードを入力するのは面倒

ということでSSHPassを利用していますが、平文でパスワードを入力するのは心許ないので少し工夫しています。

#!/bin/bash

HOST="user@hostname" #リモートのホスト名(とユーザー名)
FILE="/home/UserName/.emacs.d/init.el" #同期するファイル
DIR="~/.emacs.d/" #同期先のディレクトリ

read -sp "Password: " pass
tty -s && echo

sshpass -p $pass scp $FILE $HOST:$DIR &
sshpass -p $pass ssh $HOST

scp -rを使えばディレクトリごと同期もできるはずです。

ちなみにFILEのパスを~/.emacs.d/init.elにすると、なぜかNo such file or directoryが出てうまく行きませんでした。
フルパスを明示することで解決しましたが、理由がわからないとなんだか気持ちが悪いので、もしお分かりの方がいたらぜひ教えていただけるとありがたいです……

パスを""で囲んだためにbashが展開してくれなかったからですね

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1