SSHでリモートマシンのディレクトリをマウントする

スポンサーリンク
スポンサーリンク

Linux で SSH経由でリモートマシンのディレクトリをローカルマシンにマウントする方法です。
sshfs コマンドを使用します。
なお、以下の説明は Ubuntu でのものです。

インストール・使い方

インストールです。

apt-get install sshfs

リモートマシンのディレクトリをローカルマシンにマウントするには、次の書式で sshfs を実行します。
[]内は省略可能です。
実行後、リモートマシンのパスワードを要求されます。

sshfs [ユーザ名@]リモートホスト:[リモートのディレクトリ] マウントポイント

例えば、次のようにすると、192.168.1.228 のマシンの /home/user/dirディレクトリを、ローカルマシンの ~/mnt/dir にマウントします。

sshfs 192.168.1.228:/home/user/dir ~/mnt/dir

アンマウントは、fusermountコマンドで行います。

fusermount -u ~/mnt/dir

公開鍵認証の方法

sshfs でも、sshで公開鍵認証する場合と同様、鍵認証できます。

下記記事に従って、公開鍵・秘密鍵の生成、公開鍵のサーバへの設定を行います。
また、秘密鍵をクライアントマシンにコピーしておきます。

公開鍵認証による接続方法(sshコマンドの場合) パソコン鳥のブログ

公開鍵認証で sshfs を使うには、次の3通りがあります。
いずれも、秘密鍵や設定ファイルのパスはフルパスで指定します。
相対パスでは、鍵ファイルを使用しない通常の接続になってしまいます。

sshfs -o IdentityFile=秘密鍵のフルパス [ユーザ名@]リモートホスト:[リモートのディレクトリ] マウントポイント

sshfs -o ssh_command='ssh -i 秘密鍵のフルパス' [ユーザ名@]リモートホスト:[リモートのディレクトリ] マウントポイント

sshfs -F 設定ファイルのフルパス [ユーザ名@]リモートホスト:[リモートのディレクトリ] マウントポイント
設定ファイルの内容
IdentityFile 秘密鍵のフルパス

エラー時の対処

sshfs 実行後にリモートマシンのパスワードを求められた際、CTRL-C でキャンセルすると、もう一度 sshfs を実行しても次のエラーが出て接続できません。

fuse: bad mount point `マウントポイント': Transport endpoint is not connected

この場合は、アンマウントすればOKです。

fusermount -u マウントポイント

参考

sshで他マシンのファイルシステムをマウントするには - @IT
ssh越しにフォルダをマウントできる『sshfs』コマンド | 俺的備忘録 ~なんかいろいろ~
SSHFSを使ってSSH経由でリモートをマウント – Wikimura
sshfs – いさぢちんメモ

コメント

タイトルとURLをコピーしました