Pages

October 05, 2011

redmineをnginxで扱う

教授から成果を見える形で出せと言われたのでとりあえず備忘録。。

Redmineの設定とか
sudo apt-get install ruby ruby1.8-dev rubygems sendmail imagemagick libmagick9-dev
sudo gem update --system 1.6.2
sudo gem install sqlite3-ruby 
sudo gem install -v=2.3.11 rails
sudo gem install -v=0.4.2 i18n
sudo gem install rake
sudo mkdir -p /var/www/redmine_test
cd /var/www/redmine_test
sudo git clone git://github.com/edavis10/redmine.git
cd redmine

sudo vim config/database.yml
production:
   adapter: sqlite3
   database: db/redmine.db
   timeout: 5000

sudo rake generate_session_store
sudo rake db:migrate RAILS_ENV="production"
sudo rake redmine:load_default_data RAILS_ENV=production
>ja

メールの設定がいまいちわからない。
使わないしテキトーでいいよね。
sudo vim config/email.yml
delivery_method: :async_smtp
   smtp_settings:
   address: localhost
   port: 25
   domain: host.example.jp

sudo ruby script/server webrick -e production
http://serverip:3000にアクセスして動くかチェック
Ctrl-Cで中断

redmineをnginxで動かすときのもろもろ
sudo gem install passenger
sudo gem install rmagick

sudo passenger-install-nginx-module
自ビルドnginxだったので、そのときのソースとcofigureオプションで通す形に。

passenger-config --root
/usr/lib/ruby/gems/1.8/gems/passenger-3.0.9
which ruby
/usr/bin/ruby
上記2つのコマンドの値を覚えておく

cd /opt/nginx/conf
sudo vim nginx.conf
とかそのへんで
http {
...
passenger_root /usr/lib/ruby/gems/1.8/gems/passenger-3.0.9;
passenger_ruby /usr/bin/ruby;
passenger_max_pool_size 8;
passenger_max_instances_per_app 1;
passenger_pool_idle_time 3600;
...
}

server {
listen 80;
client_max_body_size 250M;
server_name redmine.example.com;
root /var/www/redmine_test/public;
passenger_enabled on;
rails_env production;
}
を適宜追加

nginx -t -c "nginx.confのpath"
でエラーでないなら
nginx -s reload
でおk

あとは
/var/www/redmine_test
以下のアクセス権等の調整でいいかな?
多分だけどnginxのworkerと同じ権限を与えてやればいいと思う
上のとおりだと多分権限の関係でうまく動かなくなると思うのでそのへんはよろしく

参考:
http://redmine.jp/tech_note/install/
http://www.redmine.org/issues/8325
http://doruby.kbmj.com/8y/20100628/Redmine_nginx_Passenger_
http://redmine.jp/tech_note/apache-passenger/

mongodbの認証について


mongodbで認証
configに
auth=true
とかく
bind_ip=0.0.0.0
を指定するとそこからのみ接続を受け付ける。
次にデータベースへ接続する
mongo --shell
use admin
db.addUser('username','passwd')
で管理者を追加
使用しているデータベースにユーザを追加する場合は
db.auth('username','passwd')
で管理者権限でログイン後
db.addUser('username2','passwd2')
で追加可能
{"$err" : "unauthorized db:admin lock type:-1 client:127.0.0.1",
"code" : 10057}
上記のようなエラーは管理者権限を持っていないとなるので注意

詳しい設定方法は
File Based Configuration

September 21, 2011

Windows8をWinPE3を使ったネットワーク経由でインストール

たまたま4GBのUSBメモリ無く、それとネットワーク経由でのOSのインストールってどんなものなのか知りたくなったので試してみた。
使用したPCはdynabook S30。 こいつにRAM4GB+SSD64GBでアップグレードしてるのでWin7でもそれなり頑張ってくれていた。そんで今度はWin8で犠牲になってもらおうという魂胆である。

手順
1, USBから起動できるWindows PE 3の作成
1-1, Windows PEのイメージ作成
とりあえずここからWindows AIKをDLしてインスコ
インスコ終わったら管理者権限でWindows AIKの「Deployment ツールのコマンド プロンプト」を起動します。
そして以下のコマンドを実行するとWinPE起動イメージが出来上がります。
copype x86 D:\WinPE3
imagex /apply D:\WinPE3\winpe.wim 1 D:\WinPE3\mount
imagex /capture D:\WinPE3\mount D:\WinPE3\ISO\SOURCES\BOOT.WIM "WinPE for recovery" /boot /compress maximum 
oscdimg -n -bD:\WinPE3\etfsboot.com D:\WinPE3\ISO D:\WinPE3\recovery.iso

1-2, USBメモリにイメージを書き込む
USBメモリの初期化を行わなければなりません。
それ自体はこちらの記事を参照すると良いでしょう。
さて初期化が終わった所で1-1で作ったイメージをUSBメモリに書き込みます。と言ってもコピーだけなんですが。
D:\WinPE3以下のISOフォルダ内をすべてUSBメモリにコピーすれば完了です。
あとはUSBメモリにドライバー類をおいて起動します。

2, WindowsPE上からネットワークインストール
2-1, ドライバの読み込み
うまく起動できたらコマンドプロンプトが表示されているかと思います。
そこで
drvload "読み込みたいドライバのINFパス"
を実行すると良いと思う。
S30の場合RAIDドライバが無いといけないので
例) drvload C:\drivers\KR10.INF
としてドライバを読み込ませた。

2-2, ネットワークドライブのマウント
※ネットワーク越しからインストールするということでWin8のISOをマウントし、共有してあることを前提にします。
net use "任意のドライブレター" "共有先のパス" "ログインパスワード" /user:"ユーザ名"
という感じに実行します。
例) net use n: \\test-user\h password /user:test-user
こうすることでネットワークからOSインストールに必要なファイルへアクセスすることができます。

2-3, Windows8のインストール
ここからは結構すんなりとしています。
コマンドプロンプトからマウントした先が「n:」ドライバの時は
n:
setup.exe
と実行すればOSインストール画面が出てきます。
あとは普段のインストールと同じようにすればいいと思います。

以上。

August 15, 2011

Python向けTumblr APIライブラリ更新

v1からv2に新しくAPIが更新されたのでライブラリもそれに従いました。

使い方はtest.py見てください。 これまでどおりv1で良い方はリポジトリ変更して持って行ってください。

PyYoshi/Pytumb


実装していく中でわけわからないものとかあったし、そのうちDocなり書くかなぁ~。

まだまだv2の修正来るだろうし、新しく追加されるであろうapiを楽しみにしますかねぇ。 like/unlikeは早く実装して欲しいところw

June 30, 2011

JavaScriptでOAuth認証するときの注意点

JavaScript単体でOAuth認証する場合ConsumerKey/SecretKeyが見えてしまう。

難読化(base64など)ですぐにはバレないようにはできてもいずれ見つかってしますのだけれど、どのように他のJSなアプリは隠しているのだろうか?

単体ではなくサーバプロキシを通せばそんな意識しなくてもいいのだろうけど気になるところではある。

思いつく限りだと、JS本体には置かずバイナリをJSでパースしてキーを使うというものもある。

xhrでバイナリ取得
var xhr = new XMLHttpRequest();
xhr.open('GET', path, false);
xhr.overrideMimeType('text/plain; charset=x-user-defined');
xhr.send(null);
binary_string = xhr.responseText;

binary_stringをbinaryに変換する
bytes = []
for(var i=0, t; i < binary_string.length; i++){
bytes[i] = binary_string.charCodeAt(i) & 0xff;
}

こんなかんじでJS内でバイナリ化して、各自パース処理を書けばいいのではないでしょうか?

隠し方は人それぞれだと想いますが^^;

他の方法としてはyqlを使う方法もあるようですね。

How-to: Secure OAuth in JavaScript

June 29, 2011

nginxでfastcgiを使うとき

Pythonでweb app作ったので動かそうとサーバ周りをいろいろやってみたのだがfastcgiでの動作方法がいまいちよくわからなかった。

apacheのようにhoge.fcgiを指定してやれば動く、というものではないらしくどうすればいいのか結構時間を費やしてしまった。

1つのやり方としてspawn-fcgiを使ってプロセスを生成してやればいいらしい。 それをnginx.confのfastcgi_passに指定してやることでいいみたいだ。

試しにspawn-fcgiを単体起動して動かしてみた。

sudo spawn-fcgi -f test.fcgi -a 127.0.0.1 -p 9001 -u www-data -P /var/run/spawn-fcgi-moin.pid

こんな感じで起動してやればいい。

指定したipとportをnginx.confのfastcgi_passに指定して動けばおk


そんなかんじで。


起動スクリプト書いてみたので参考としてどうぞ



自動起動する場合はUbuntuはchkconfigではなくsysv-rc-confを使うこと。

sudo sysv-rc-conf test_app on

またはupdate-rc.d

June 06, 2011

Python向けtumblr APIライブラリ公開した。

OAuthにしか対応してないtumblr APIライブラリ公開した。
test.pyとかapi.pyとか見ればいいと思うよ。

各API毎のパラメータは公式API DOC見てください。
まぁtumblr api叩いたことある人なら大丈夫だと思うけど。

ということでほい

PyYoshi/Pytumb at master - GitHub

June 03, 2011

libwebpのビルド

Ubuntu 10.04に用意されていないようで自前で用意したときのメモ

$ cd tmp
$ wget http://webp.googlecode.com/files/libwebp-0.1.2.tar.gz
$ tar zxvf libwebp-0.1.2.tar.gz
$ cd libwebp-0.1.2
$ sudo apt-get install automake libtool
$ aclocal && autoconf && automake -a -c;
$ ./autogen.sh
$ ./.configure
$ make
$ sudo make install
$ ls -la /usr/local/lib/libwebp*
$ ls -la /usr/local/include/webp/*
$ ls -la /usr/local/bin/*webp

以上

April 18, 2011

VS2010でboostを扱う準備

研究室配属されて、スクリプト言語ばかり使っていた生活も変わるだろうとDreamSparkからVS2010を拝借した。
で、巷で話題のboostをVS2010で使えるようにした。(boostすげぇーってしか分かってないw
それとVSがうまくインスコされていないのか各PATHを手動で通している。

準備:
C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\vcvars32.batの修正
最初の行に
@SET VSINSTALLDIR=C:\Program Files\Microsoft Visual Studio 10.0
@SET VCINSTALLDIR=C:\Program Files\Microsoft Visual Studio 10.0\VC
@SET FrameworkDir32=C:\Windows\Microsoft.NET\Framework
@SET FrameworkVersion32=v4.0.30319
@SET Framework35Version=v3.5
を追加

:: @call :GetVSCommonToolsDir
:: @if "%VS100COMNTOOLS%"=="" goto error_no_VS100COMNTOOLSDIR
:: @call "%VS100COMNTOOLS%VCVarsQueryRegistry.bat" 32bit No64bit
該当部分をコメントにする。
※当環境ではこのようになったが各自インスコ場所とVer.は確認しておくこと。

PATHに
C:\Program Files\Microsoft Visual Studio 10.0\VC\bin
C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE
C:\Program Files\Microsoft Visual Studio 10.0\VC\include
を追加

INCLUDEに
C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include
C:\Program Files\Microsoft Visual Studio 10.0\VC\include
を追加

LIBに
C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib
C:\Program Files\Microsoft Visual Studio 10.0\VC\lib
を追加

ビルド:
Visual Studio コマンドプロンプトからboostrap.batのあるディレクトリに移動して
bootstrapを実行。
>bootstrap
bjam.exeが生成されると思う。
できなかったら、「boost\tools\build\bjam.log」あたりをチェックしてみるといいかもしれない。

bjamからboostのコンパイル
>bjam toolset=msvc-10.0 variant=debug,release threading=multi link=static
スペックが糞なせいかだいぶビルドに時間かかった。

VS2010の設定:
プロジェクトを読み込んだら
「Microsoft.Cpp.Win32.user」をダブルクリック、Includeディレクトリをクリックしboostディレクトリを追加。
Libraryディレクトリをクリックし、ビルドされた「stage/lib」を追加。

以上で終了です。
VS側の設定はまだビルドが終わってないので試してないけど、たぶん大丈夫でしょうw


参考:
VS2010 command prompt gives error : Cannot determine the location of the VS Common Tools folder.
MS C++ 2010 and mspdb100.dll
Compiling and configuring Boost C++ libraries for Visual Studio 2010

April 06, 2011

PythonモジュールをSL4A向けにビルドしてみた

SL4AのVer.が上がってAPIも結構数サポートされて驚いていたのだが、それよりうれしいとおもったのがPythonのCモジュールのビルド方法が確立されたこと。
以前まではソースにそのようなツールは用意されていなくクロスコンパイラでとりあえずビルドって感じだった。
ということでPythonモジュールのビルド方法を。
ツールのソースコード追ってないので正しいかどうか分からないけどAndroidソースが必要みたい。
Androidのソースは各自準備してください。

/home/hoge/android/mydroid ← Androidのソース置き場
/home/hoge/android/sl4a ← SL4Aのソース置き場
とします。

今回はPyLZMAをビルドする例を紹介します。

SL4Aのソースをとってくる。
$pwd
/home/hoge/android/
$cd sl4a
$hg clone https://android-scripting.googlecode.com/hg/ android-scripting

ビルドツールの一部を修正する。
$cd android-scripting/tools/agcc
$vim agcc
126行目以降のものを以下のように1行追加
# Also need: -Wl,-soname,libXXXX.so
my @shared_args = (
    "-nostdlib",
    "-Wl,-T,$DROID/build/core/armelf.xsc",
    "-Wl,--gc-sections",
    "-Wl,-shared,-Bsymbolic",
    "-L$ALIB",
    "-Wl,--no-whole-archive",
    "-L/home/hoge/android/mydroid/prebuilt/ndk/android-ndk-r4/platforms/android-3/arch-arm/usr/lib ",
    "-lc",
    "-lm",
    "-ldl",
    #"-Wl,--no-undefined",
    "$TOOLCHAIN/lib/gcc/arm-eabi/4.4.0/interwork/libgcc.a",
    "-Wl,--whole-archive"); # .a, .o input files go *after* here

PyLZMAをとってくる。
$pwd
/home/hoge/android/sl4a
$mkdir Modules
$cd Modules
$wget http://pypi.python.org/packages/source/p/pylzma/pylzma-0.4.4.tar.gz
$tar zxvf pylzma-0.4.4.tar.gz

Moduleをビルド
$cd pylzma*
$export SL4A_TRUNC=/home/hoge/android/sl4a/android-scripting
$export ANDROID_SRC=/home/hoge/android
$export PATH=$PATH:$ANDROID_SRC/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin
$export PATH=$PATH:$SL4A_TRUNC/tools/agcc
$export AR=arm-eabi-ar
$export PYBASE=$SL4A_TRUNC/python/src
$export INCLUDES="-I$PYBASE -I$PYBASE/Include"
$export OPT="-DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fno-short-enums $INCLUDES"
$export CXX=agcc
$export LDSHARED="agcc -shared"
$export RANLIB=arm-eabi-ranlib
$export CC=agcc
$python -E setup.py build

これで問題なくビルド出来ると思う。
$cd build/lib*
$zip pylzma.zip *
でパッケージングしたらPython for Androidでそのzipファイルをインポートすれば使えると思う。
またlib*の他にscripts*ってのが出来てたらそれも必要。
それを/sdcard/downloadに置く。

で、これだとなんかうまくいかない…
root取れれば
*.soを
/data/data/com.googlecode.pythonforandroid/files/python/lib/python2.6
*.pyを
/sdcard/com.googlecode.pythonforandroid/extras
に置けばいいと思う。

なんか説明が足らないな…
ソース見ろってことかねw
その部分のソース: PythonMain.java

March 21, 2011

x11vncをUbuntu10.04にインストールする

以前はVNCクライアント上でD&D出来た記憶があったけど10.04ではなんかうまくいかなかった。
仕様なのかなと思ったけど違うみたい。 いろいろなサイト(海外のフォーラム)でvnc4server以外でもどうやら起きている見たいで、x11vncだけはそうでもないってことでそれを入れた。

いろいろなサイトを参考にx11vncをxinetdで動かそうとしたんだけどうまくいかねぇ…
自ビルドしたり、gdmに登録してみたり、半日くらい潰した。無能すぎる

ってなわけで

$sudo apt-get install x11vnc
$sudo mkdir /etc/x11vnc
$sudo x11vnc -storepasswd /etc/x11vnc/passwd
$sudo chmod 644 /etc/x11vnc/passwd
$sudo vim /etc/xinetd.d/x11vnc
service x11vnc
{
   type = UNLISTED
   protocol = tcp
   disable = 0
   user = root
   server = /usr/bin/x11vnc
   server_args = -inetd -o /var/log/x11vnc.log -forever -auth /var/lib/gdm/:0.Xauth -display :0 -xkb -rfbauth /etc/x11vnc/passwd
   port = ポート適宜
}

$sudo vim /etc/services
x11vnc   ポート番号適宜/tcp   #X11VNC Server

これでいちよ動くようになった。
-xkbオプション追加でshiftキーが使えるようになる。
てかx11vncなんかきびきび動いてくれませんね(Color depthが指定できないからかな?) vnc4serverの方が個人的には好きかもw

で、さらに問題が。
X11VNCはX11自体にアクセスして処理を行っているため、クライアントで操作しているとサーバ側の画面もそれと同じように動くのである・・・ 困った。。
いろいろ調べていたらXvfbというX11仮想プログラムを使えば良いみたい。

$sudo apt-get install xvfb

このあとよく分からない

$Xvfb :20 -screen 0 800x600x16 &
とかして
x11vncの-displayオプションに:20を指定してやれば良いみたい?
なので、
端末で実際試してみたんだけど、ログインまではできるものの画面が白っぽいままセッション画面が出ない。
何が問題なのかも分からない。

March 18, 2011

Win7でScalaとScalaAndroid環境構築とか

ただの備忘ログ
構築とかわかりにくかったのでまとめただけ。転んだら泣いてください。

サイト
Scala
Index of /gnu/windows/emacs か NTemacs
Apache Ant
ProGuard
simple-build-tool
object版create_project

準備
1:
ScalaのサイトからIzPack Installerをダウンロードして指示通りインスコ。インストーラ版だとPATHも勝手に追加してくれるので楽。

2:
最新のemacsを持ってくる。
「scala/misc/scala-tool-support/emacs」のファイルを「.emacs.d/scala-mode」に置く
C:\Users\***\AppData\Roaming\.emacs.dにinit.elを作成
以下内容
;; Set default fonts and fonts for Japaense
(cond
  (window-system
    (set-default-font "Courier New-10")
    ;; Japanese(japanese-jisx0208)font
    (set-fontset-font
      (frame-parameter nil 'font)
      'japanese-jisx0208
      (font-spec :family "Meiryo" :size 12)
      ;;'("Meiryo" . "unicode-bmp")
    )
  )
)
;; Set scala-mode
(add-to-list 'load-path "~/.emacs.d/scala-mode")
(require 'scala-mode-auto)
起動はbin以下の「runemacs.exe」でおkみたい。
cuiでは「emacs -nw」みたい。
使い方とかよく分からないので追々。

3:
Apache AntからWindowsバイナリをダウンロード解凍後、適宜場所へ。 そのあと環境変数のPATHに「apache-ant/bin」がある場所を追加。
端末から「ant -version」でPATH通っているか確認。

4:
ProGuardをダウンロード解凍後適宜場所へ。そのあと環境変数に
PROGUARD_HOMEを新規追加。
PATHに「%PROGUARD_HOME%\bin」を追加
「proguard」を端末内で実行確認。

5:
端末内で「sbaz install scala-android」を実行しscala-androidをインスコ。
このままではscala自体がエラーで起動しないので。
こちらで2.8.1用にビルドした物を用意したので、自己責任でscala-android.7zをダウンロード解凍後
「scala/lib」以下に置けばおk
※いつダウンロードリンクが切れるか分かりません(笑

6:
simple-build-toolをダウンロード解凍後適宜場所へ。
「sbt-launch-*」を「sbt-launch.jar」へリネーム
@echo off
java -Xmx512M -jar "%~dp0/sbt-launch.jar" %*
そのあと環境変数のPATHにsimple-build-toolがある場所を追加。
ANDROID_SDK_HOMEという名前でandroid-sdkのある場所を追加。
端末内で「sbt」でPATHが通っているか確認。

7:
simple-build-toolと同じところにcreate_project.scalaを保存
create_project.scalaを修正
create_project.scala:13
-- val e = args.elements
++ /**val e = args.elements**/
++ val e = args.iterator
修正版:create_project.7z
※こっちもいつダウンロードリンクが切れるか分かりません(笑
あとScala触ったことないのでちゃんと動くかすら分かりません(汗


実際に使ってみる
1: プロジェクトの作成
任意のフォルダにsimple-build-toolディレクトリにある「create_project.scala」をコピーする。
PS> scalac create_project.scala
PS> scala -cp . CreateProject HelloProject scalatohoku.example.hello --platform android-8 --scala-version 2.8.1 --activity HelloActivity
PS> cd HelloProject
PS> sbt update package-debug

2: コンパイル(apk化) → ぶち当たった壁を参照
HelloProject下で
PS> sbt
sbt> compile
sbt> install-emulator
または
sbt> install-device
インストール出来ません


ぶち当たった壁
1:Issue 150: sbt.Process apply splits path to command having spaces
android-sdkのpathにスペースが入るとだめな見たい。なので別位置に置きましょう。
結構これに時間とられた(汗

2: sbt> install-emulator(install-device)しても動かない
device名が文字化けしているのか端末へのインストールがうまくいかない。
「target/scala_2.8.1」にapkできてるのでそれをインストールして対処。


参考
Android SDK for Scala | ブログ.武田ソフト.jp
Scala + Androidをsbt(Simple Build Tool) とEclipseを併用して開発
EmacsでつくるScala開発環境 前編(scala-mode)

March 08, 2011

Androidのライブラリの依存関係を調べる。

バイナリ開けるのめんどくさかったので書いた。
やってることが分かる人のみで。
スクリプトと同じフォルダにbin, lib作って適宜ファイル入れること。
また、arm-eabi-objdumpも入れておくこと。
# -*- coding: utf-8 -*-
#!/usr/bin/env python
from os import getcwd, listdir
from popen2 import popen3

cdir = getcwd()

lib_flist = listdir(cdir+'/lib/')
bin_flist = listdir(cdir+'/bin/')
for file in lib_flist:
    cmd = './arm-eabi-objdump -x ./lib/'+ file + ' |grep -e NEEDED'
    stdout, stdin, stderr = popen3(cmd)
    print file
    print stdout.read()
    print stderr.read()

for file in bin_flist:
    cmd = './arm-eabi-objdump -x ./bin/'+ file + ' |grep -e NEEDED'
    stdout, stdin, stderr = popen3(cmd)
    print file
    print stdout.read()
    print stderr.read()

February 09, 2011

cd hoge; ls-aと打つのがめんどくさくて、、

最近リナックスを使う機会が多くなってきて、どうもcd コマンドの後にls -aと打つのが面倒になってきた。

最初はまぁそーいうものだろうと思ってたんだけど我慢の限界だったので、bashrcにcd hoge; ls -aをcdコマンドだけで出来るようにした。

$vim .bashrc
function cd() {
  builtin cd $@
  ls -a
}
$source .bashrc

を追加して終了。

動くか心配だったけど無事動きましたw

January 15, 2011

暗号化したHomeで注意すること SSH編

普段はHomeなんて暗号化しない設定でOSを構築するのでが、正月中に作ったとある鯖では暗号化したHomeを採用していた。

そのときは、まぁ何も影響ないだろうと思っていたのだが、SSHなどの公開鍵認証でそれにぶち当たった。

基本的に公開鍵はHome以下の".ssh"に置くのだが、暗号化Homeの場合はそのデフォルトの状態だと公開鍵を読みに行くことが出来ないのだ。

/home以下がマウントされることはないので。

なので、公開鍵は/home以外の場所に置く必要が出てくる。

で、実際やることは

/homeが見える環境で公開鍵を別の場所にコピーすればおkってことで作業開始。

$sudo mkdir /etc/
$sudo cp $HOME/.ssh/authorized_keys /etc//authorized_keys

$sudo chmod 700 /etc/
$sudo chown  /etc/
$sudo chmod 600 /etc//authorized_keys
$sudo chown  /etc//authorized_keys
$sudo vim /etc/ssh/sshd_config
「AuthorizedKeysFile /etc//authorized_keys」部分を編集
$sudo /etc/init.d/ssh restart

問題は$HOME以下にこのままではアクセス出来ないこと。
どうすればいいんだろうか?


参考: Encrypted Home Directory