MSYS2のOpenSSHでのホームディレクトリの扱い

問題

  • OpenSSHは環境変数HOMEを参照しない。
  • Windows上またはMSYS2上の環境変数HOMEを特定のパス(例えばC:\myhome)に指定していても、sshコマンド実行時にC:\myhome\.ssh以下ではなく、/home/USERNAME/.sshを参照する。
  • なお、OpenSSH以外のほとんどのアプリは環境変数HOMEを参照する。問題になるのはOpenSSHだけ。

解決方法

以下のいずれか。

Windows上でシムリンクを張る

 CMD> cd C:\msys64
 CMD> mkdir home
 CMD> cd home
 CMD> mklink /D USERNAME C:\myhome

/etc/fstabでホームディレクトリを指定してマウントする

 
 C:/myhome /home/USERNAME

nsswitch.confでホームディレクトリを指定する

  • Cygwin(およびその派生であるMSYS2)では/etc/nsswitch.confで以下のように指定すると、ホームディレクトリがWindowsのユーザプロファイルフォルダー(C:\Users\USERNAMEのような%USERPROFILE%)と同じになる。
  • または%Hでユーザプロファイルフォルダーを指定できるので、/%H/Dropbox/msys2 のようにユーザ名をハードコーディングせずに済む。
  • 多分、この方法が一番いい。
  • Cygwinのnsswitch.conf https://cygwin.com/cygwin-ug-net/ntsec.html#ntsec-mapping-passwdinfo
 db_home: windows cygwin desc
 db_home: /%H/Dropbox/msys2
 db_home: C:\myhome

参考


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2016-12-28 (水) 18:52:43