サーバ上のディレクトリをローカルにマウントするsshfsの使い方

はじめに
Linuxでは、サーバ側のディレクトリを自身のローカルPCにマウントして、ローカル上のディレクトリして使用することができるコsshfsというマンドが用意されています。名前の通りssh
を使います。ここではこのsshfs
のUbuntuでの使い方をメモします。
できるようになること
以下のように、サーバ上のディレクトリをUbuntuのローカルのディレクトリとしてマウントすることができるようになります。
以下のようにローカルのディレクトリのようにアクセスすることができます。もちろんコマンドでのファイル操作も可能です。
sshfsをインストール
以下のコマンドを実行してインストールは完了です。
ローカルにマウントポイントとなるディレクトリを作成
今回はホームディレクトリにremote-server
というディレクトリを作成し、ここにサーバ上のディレクトリをマウントします。以下のようにcd
に引数を渡さずに実行すればホームディレクトリに移動します。
マウントする
後は実際にsshfs
コマンドでマウントします。
なお、以降では例として以下をssh接続のために使う情報とします。
- ssh接続に必要なユーザ名: sshuser
- 接続先となるサーバIP: 192.168.1.1
- ローカルのマウントポイントとなるディレクトリ名: remote-server(上記で作成したディレクトリ)
一番簡単な使い方としては以下になります。
よって以下を実行するとサーバ上でのルートディレクトリがローカルのremote-server
にマウントされます。
サーバ上の/home/user1
というディレクトリをローカルのremote-server
にマウントしたい場合は、以下のコマンドになります。
正常にマウントされると、以下のように外部ディスクとして表示されます。
以上が簡単な使い方になります。以降に秘密鍵を使った場合の使い方を載せます。
秘密鍵を指定してssh接続してマウントする
秘密鍵を指定してssh接続してマウントする場合は、以下のようになります。見て分かるように-o IdentityFile=ローカルの秘密鍵のパス
というオプションで使用する秘密鍵を指定しています。
ローカルの~/.ssh/id_rsa.key
を秘密鍵として使いたい場合は以下になります。
ポート番号を指定したい場合は、-p ポート番号
オプションを使います。以下の例ではssh接続で使用するポート番号として10022
を指定しています。
秘密鍵指定、ポート番号指定、サーバ上の/home/user1
というディレクトリをマウントする場合は、以下のコマンドになります。
最後に、~/.ssh/config
に記載された接続情報を使ってssh接続してマウントする場合を説明します。
~/.ssh/configの設定ファイルにある情報を使ってssh接続してマウントする
sshでサーバに接続する時に、sshの設定ファイルである~/.ssh/config
に記載の情報を使って接続することも多いと思います。
例えば、~/.ssh/config
に以下の内容が記載されているとします。
この~/.ssh/config
に記載の情報を使用してsshfs
を使うには、以下のようにします。
以下は~/.ssh/config
に記載のremotesvr
サーバのルートディレクトリをremote-server
にマウントします。
他の例と同様に、サーバ上の/home/user1
をマウントしたい場合は以下になります。
アンマウントする
以下のumount
コマンドでアンマウントできます。なお、root権限である必要があります。
なお、マウントした状態でネットワーク接続が切断され、ssh接続も切断されると、umount
しても以下の様なエラーが表示されます。
この場合は、まずps
コマンドでsshfs
のプロセス番号を確認し、それをkill
コマンドで終了します。ps
、kill
コマンドのオプションについては参考サイト様をご参照ください。
なお、kill
しただけではすでにssh接続が切断されているのにマウントされた状態になってしまっており、この状態で例えば以下のようにcd
でアクセスしようとすると、以下のようなエラーが表示されます。そのため、最後に改めてumount
を実行する必要があります。
最後にumount
に強制アンマウントのための-f
オプションをつけてroot権限で実行します。
【 ps 】 実行中のプロセスを表示する | ITPRO 【 kill 】 プロセスおよびジョブを強制終了する | ITPRO
まとめ
sshfsによってサーバ上でのディレクトリをでローカルディレクトリと同じように使えると、いちいちFTPクライアント等を使う必要がなく便利です。
関連記事
- 公開日:2022/09/11 更新日:2022/09/11
Google Compute EngineのインスタンスにSSH接続できなくなった時の対処方法
Google Compute EngineのインスタンスにSSH接続できていたのにSSHの設定ミスや原因不明でSSH接続できなくなった時の対処方法をメモします。自分のPCからだけでなく、Google Cloud Platform上での管理画面からもSSHできない場合にも有効です。
- 公開日:2022/09/08 更新日:2022/09/08
Google Compute EngineのインスタンスにSSH接続する
Google Compute Engineのインスタンスにssh接続するための手順をまとめます。
- 公開日:2018/02/10 更新日:2018/02/10
CentOSでrootのときだけ日本語が文字化けする時の原因と対処方法
さくらVPSでCentOSを使いはじめたところ、一般ユーザで使用している時はvimなどのエディタで編集していても日本語が問題なく表示されていましたが、root権限で同様に編集のためにファイルを開いたら日本語が文字化けしてしまいました。以降ではこの原因と対処方法についてメモします。
- 公開日:2017/08/27 更新日:2017/08/27
MacでubuntuのインストールUSBを作成する方法と手順
MacでubuntuのインストールUSBを作成する手順をメモします。ここで載せる手順はターミナルでのコマンドによる方法になります。
開発アプリ
