CentOS 6.2/6.3でxrdpを使ってリモートデスクトップ

yumを使用してepelからインストールする事もできるが、キーバインドが上手くいかず、英語キーボード配列で、バックスラッシュやアンダースコアが入力できなかったので、最新版をmake installする。日本語は入力できないのは断念する。

gitは導入済みとする。rootで実行する。

必要なライブラリを事前に入れておく。

# yum -y install autoconf automake libtool gcc openssl-devel pam-devel libX11-devel libXfixes-devel

xrdpを入手する。

# cd /usr/local/src

# git clone git://github.com/FreeRDP/xrdp.git

xrdpをコンパイル・インストールする。

# cd xrdp

# ./bootstrap

# ./configure

# make

# make install

キーマップファイルを作成する(一部意味の無い処理があると思う)。

# cd /etc/xrdp

# xrdp-genkeymap km-0411.ini

# mv km-0411.ini km-0411.ini.org

# wget http://www.mail-archive.com/xrdp-devel@lists.sourceforge.net/msg00263/km-e0010411.ini

# mv km-e0010411.ini km-0411.ini

リンクファイルを作成する。

# cd /etc/xrdp

# ln -s km-0411.ini km-e0200411.ini

# ln -s km-0411.ini km-e0210411.ini

# ln -s km-0411.ini km-e0010411.ini

ファイアーウォールを適宜設定する。OSをリブートする。

xrdpサービスを起動する。

# /etc/xrdp/xrdp.sh start

Windows 7 Proのリモートデスクトップ接続(クライアント)から接続でき、各種入力も問題なし。

 

(追加1)

yumで入れたxrdpにキーマップファイルをコピーするだけで大丈夫でした。 orz

# yum --enablerepo=epel -y install xrdp

# chkconfig --level 35 xrdp on

この後、前記 /etc/xrdp へのキーマップファイルコピー処理をやればオッケー。

 

参考:

http://fukushimaya2.blog103.fc2.com/blog-entry-23.html

http://www.mail-archive.com/xrdp-devel@lists.sourceforge.net/msg00263.html

 

Ruby 1.9.3向けwillnet-amazon-ecsのHMAC/SHA256処理部分の修正

RubyRailsでamazonの商品情報を使いたいと思い、amazon Web APIを調査した。

サービスの利用準備については、以下が参考となる。

Amazon Web サービス入門(Product Advertising API) (http://www.ajaxtower.jp/ecs/)

Gemにはamazon-ecsというライブラリがあり、それを使うと楽できそうだと分かる。

# gem install amazon-ecs

[Ruby][Gems]amazon-ecsを使用する (http://rubyist.g.hatena.ne.jp/pulscope/20070319/p2)

を参考として動作確認を試みるが、400 ERRORで動かない。原因は、リクエストメッセージに秘密鍵を使った署名が付いていない事のようだ。記事が古いことに気づく。

http://demenaoto.blogspot.jp/2009/08/ruby-on-rails-amazon-ecs-amazon-product.html

http://demenaoto.blogspot.jp/2009/08/ruby-on-rails-amazon-ecs-amazon-product_19.html

によると、amazon-ecsが署名認証をサポートしたような感じがするが、

http://blog.u-kipedia.com/blogs/10

によると、2012/02/28時点でやっぱりサポートしてないようだ。

そこで、署名認証をサポートしたwillnet-amazon-ecsを試す。

http://d.hatena.ne.jp/willnet/20090716/1247737270

指示に従ってインストールする。

これで大丈夫かと思いきや、hmac_sha256処理でエラーが発生する。

http://midorex.blogspot.jp/2009/06/amazon-web-with-ruby-191.html

によると、原因はRubyのバージョン違い(1.8系と1.9系)による変更に対応していないためのようである。Ruby初心者の私には、この理由を見つけるのに苦労した。

HMAC処理部分を以下のように修正する。

(Ruby 1.9.3, willnet-amazon-ecs 0.5.6) 

ecs.rbの225, 226行目

  ikey[i] = key[i] ^ ikey[i]

  okey[i] = key[i] ^ okey[i]

  ikey[i] = (key[i].ord ^ ikey[i].ord).chr

  okey[i] = (key[i].ord ^ okey[i].ord).chr

に修正する。

これでAmazon::Ecs.item_searchとかが使えるようになった。良かった。。