🍎

SSHサーバをMacにマウントする

2022/08/09に公開

SSHサーバをMacにマウントする流れ

こんにちは、あず(@as_pml)です。今回はSSHサーバをMacのファイルシステム(Finder)にマウントする流れを備忘録的に残して行こうと思います。スペックは以下の通りです。

MacBook Air(M1, 2020)
macOS Monterey 12.4
Homebrew 3.5.8

なぜこの構成にしようと思ったか?

現在サーバを2台持っており、それぞれsshで接続できるようにしています。
またポータブルなものとしてMacBookを利用しています。いちいちsshしてサーバの中のファイルを覗いたり、またVSCodeのRemote Explorerから環境を開くのが面倒!!(履歴に出てきてくれない)と思ってしまったりし、じゃあいっそFinderから確認できるようにしてしまえ(=localにマウントしてみよう!)となった次第です。

0.要約

忙しい方向けの要約です。私の備忘録も兼ねます。

  1. サポートツールを入れる(macFUSE,sshfsが入っている人は飛ばしてください)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
brew install macfuse
brew install gromgit/fuse/sshfs-mac
  1. 接続する
sshfs [user]@[host]:[dir] ~[local path] -o IdentityFile=~/.ssh/[id_ras name] -p [port number]

例: sshfs as_pml@hogehoge.com:/home/as/work/ ~/work/suns/ -o IdentityFile=~/.ssh/id_ras -p 21

  1. aliasを作る
alias sshfs2="umount -f ~[local path];[user]@[host]:[dir] ~[local path] -o IdentityFile=~/.ssh/[id_ras name] -p [port number]"

例:alias sshfs2="umount -f ~/work/suns/;as_pml@hogehoge.com:/home/as/work/ ~/work/suns/ -o IdentityFile=~/.ssh/id_ras -p 21"

  1. (unmountしたい時用)
sudo umount ~/work/suns

1.macFUSE,sshfsを導入する

ここではbrewを利用したmacFUSEを導入する方法を紹介します。

  1. brew update
    まずHomebrewのUpdateを実行してください(brew update
    ここでよくわからないエラーを吐きまくる(私は長らくDockerと戯れており、brewを放置しまくっていたせいでダメだと判断しました)時は再インストールも押します。
    コマンドは以下になります。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
  1. macfuseの導入
    続いてmacFUSEを導入します。これは以下のコマンドでいけます。
brew install macfuse
  1. sshfs-macの導入
    最後にsshfsを導入します。
brew install gromgit/fuse/sshfs-mac

2. 接続する

先ほど導入したsshfsを利用してsshプロトコルで接続し、特定のディレクトリへのマウントを行います。
概要は以下の通りですが、以下詳細をみていきます。

sshfs [user]@[host]:[dir] ~[local path] -o IdentityFile=~/.ssh/[id_ras name] -p [port number]

まず~[local path]にあたるディレクトリを生成する必要があります。ここがマウントポイントになります。
今回は仮に~/work/sunsというディレクトリであるとします。

mkdir ~/work/suns

次にssh接続する際のssh keyがもしない場合にはkey generateします。私の場合には自鯖なので自分で生成してpublic keyをサーバ側に配置し、~/.ssh/以下に private keyを配置しました。keyの名前は自分で変えていますがここでは最も一般的なid_rasとしたとします。

ここで、 as_pmlというUser名でhogehoge.comという名前のサーバにssh接続しに行くことを想定します。
~/work/sunsにはこのサーバの中の/home/as/work/ディレクトリをマウントしたいです。
するとコマンドは以下のようになります。 -pオプションはポート番号を指定でき、21番ポート以外で待機している時に有効です。

sshfs as_pml@hogehoge.com:/home/as/work/ ~/work/suns/ -o IdentityFile=~/.ssh/id_ras -p 21

セキュリティエラーが出た!!

sshfsの実行時にセキュリティエラーとともにシステム設定に誘導されることがあるかもしれません。そんな時には以下の手順で解消します。

  1. シャットダウンする
  2. その後電源ボタンを長押しし、Loading startup options(起動オプションを読み込み中)と表示されるのを待つ
  3. オプション(歯車マークの方)を押して「続行」します
  4. 上のツールバーにあるStartup Security Utility(起動セキュリティユーティリティ)を探して選びます。
  5. Security Policy(セキュリティポリシー)からAllow user management of kernel extensions from identified developers(特定された開発者のカーネル拡張の管理をユーザーに許可する)というチェックボックスにチェックを入れます
  6. 後はOKボタンを連打して、再度システムを再起動
    で基本はいけました。

ここまでで一通りマウントは完了です。お疲れ様でした!!

3. おまけ(unmountしたい時用)

sudo umount ~/work/suns

これでunmountできます。

Discussion