サーバ上のファイルを更新する時は、scp,ftp クライアントを起動してファイルダウンロード、もしくはscp コマンドを実行してファイルを手元にコピーしてファイルを更新、再度 ファイルをアップロードしていませんか?軽微の修正であればサーバにリモートログインして nano, vi などで直接ファイルを修正しても良いかもしれませんが、新規開発や大きな修正の場合は手元の開発ツールを使った方が効率が良いです。
curlftpfs, sshfs は、nfs や samba のようにサーバに ftp, ssh サーバが起動していればサーバの特定のディレクトリをローカルにマウントして、サーバ上のファイルをあたかもローカルのファイルとして扱うことが出来るツールです。
curlftpfs は、以下のコマンドでインストールします。
$ sudo apt -y install curlftpfs
Webサーバのドキュメントルート /var/www/html/ を ローカルの ~/work/ ディレクトリにマウントします。
$ mkdir ~/work
$ curlftpfs -o user=taro:password 192.168.0.1://var/www/html/ ~/work/ <- : の後の / は // 2つ必要
アンマウント
$ sudo umount work
編集を行う場合は、アクセスしたユーザの /var/www/html への書き込み権限が必要です。
sshfs は、以下のコマンドでインストールします。
$ sudo apt -y install sshfs
$ sshfs taro@192.168.0.1:/var/www/html/ ~/work/
taro@192.168.0.1's password:
アンマウント
$ sudo umount work
curlftpfs は、マシンを起動する毎にコマンドを実行する必要がありますが、sshfs は、 /etc/fstab に記述しておけば、起動時に自動マウントしてくれます。
自動でマウントするためには、公開鍵認証を使ってサーバにパスワード無しで
自動ログイン出来るようにしておく必要があります。
公開鍵は、以下の方法で作成します。
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/taro/.ssh/id_rsa): [Enter]
Enter passphrase (empty for no passphrase): [Enter]
Enter same passphrase again: [Enter]
公開鍵は、~/.ssh/id_rsa.pub に作成されるのでサーバにコピーします。
$ scp -p ~/.ssh/id_rsa.pub 192.168.0.6:
対象サーバにログインして、コピーした ~/id_rsa.pub を ~/.ssh/authorized_keys ファイルに追記して、パーミションを 6000 にします。
$ cd ~
$ mkdir .ssh
$ chmod 700 .ssh
$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ rm ~/id_rsa.pub
/etc/fstab に以下の行を追記すると、起動時に自動でマウントされます。
taro@192.168.0.1:/var/www/html/ /home/taro/work fuse.sshfs auto,_netdev,users,IdentityFile=/home/taro/.ssh/id_rsa,allow_other,reconnect,delay_connect,umask=0000 0 0