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 – いさぢちんメモ
コメント