MY PIANOS
CALENDAR
S M T W T F S
1234567
891011121314
15161718192021
22232425262728
293031    
<< July 2018 >>
ARCHIVES
CATEGORIES
MOBILE
qrcode
MariaDB + Mroonga : 動作の確認
基本的な動作確認を行います。

簡単な、全文検索インデックス付きのテーブルを作成します。
MariaDB [information_schema]> use test
Database changed
MariaDB [test]> CREATE TABLE `posts` (
-> `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
-> `post_title` text ,
-> PRIMARY KEY (`ID`),
-> FULLTEXT KEY `post_title` (`post_title`)
-> ) ENGINE=mroonga DEFAULT CHARSET=utf8;
Query OK, 0 rows affected, 2 warnings (0.40 sec)
MariaDB [test]>


適当なデータをロードします。
MariaDB [test]> insert into posts ( post_title , post )
-> values
-> ( 'アホかいな' ) ,
-> ( '自動パトカー' ) ,
-> ( '全文検索を行う際' ) ,
-> ( 'しかし' ) ,
-> ( '全文検索用パーサの変更' ) ,
-> ( '全文検索の利用方法' ) ,
-> ( '全文検索利用の方法' ) ,
-> ( 'INSERTでデータを投入してみましょう。' ) ,
-> ( 'となります' );
Query OK, 8 rows affected (0.00 sec)
Records: 8 Duplicates: 0 Warnings: 0

MariaDB [test]>

テーブルの中身
MariaDB [test]> select post_title from posts;
+-----------------------------------------------------+
| post_title                    |
+-----------------------------------------------------+
| アホかいな                   |
| 自動パトカー                 |
| 全文検索を行う際                |
| しかし                    |
| 全文検索用パーサの変更            |
| 全文検索の利用方法              |
| INSERTでデータを投入してみましょう。    |
| となります                  |
+-----------------------------------------------------+
8 rows in set (0.00 sec)
MariaDB [test]>

普通に LIKE 検索した結果
MariaDB [test]> select post_title from posts where post_title like '%検索利用%';
Empty set (0.00 sec)
MariaDB [test]>

全文検索インデックスを使って検索した結果…要素解析が有効な状態
MariaDB [test]> SELECT post_title FROM posts WHERE MATCH(post_title) AGAINST('検索利用');
+-----------------------------+
| post_title        |
+-----------------------------+
| 全文検索の利用方法    |
+-----------------------------+
1 row in set (0.01 sec)
MariaDB [test]>

全文検索インデックスを使って…逆に要素解析を行わない完全一致の検索
MariaDB [test]> SELECT post_title FROM posts WHERE MATCH(post_title) AGAINST('検索利用' IN BOOLEAN MODE);
Empty set (0.01 sec)
MariaDB [test]>


最低限の試験ですが、これで全文検索エンジンが正常に動いている事が確認出来ました。

この程度のレコード数、データ容量だと、LIKE検索の方が早く見える、ってのはちょっと不安ですが…これから、大量データを投入して試験を行ってみる予定です。
ひとまず、導入ができただけでも、一安心です。(^_^;)
| Tech_Server | 10:21 | comments(0) | - | pookmark |
MariaDB + Mroonga : 最終設定を行う
最終的な設定を行います。これを行わないと、Mroongaが使えないままです。
最初に mroonga ストレージプラグインを導入するのですが、まずはデフォルト Database を選択します。なんでも良いのですが、ここでは root の管理業務らしく、information_schema を選択します。

MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.01 sec)

MariaDB [(none)]> use information_schema
Database changed
MariaDB [information_schema]>


ストレージプラグインを導入します。
MariaDB [information_schema]> INSTALL PLUGIN mroonga SONAME 'ha_mroonga.so';

導入したら、データベースエンジンに Mroonga が入っているかチェックします。
MariaDB [information_schema]> show engines;
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| InnoDB | DEFAULT | Percona-XtraDB, Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| MRG_MyISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| mroonga | YES | CJK-ready fulltext search, column store | NO | NO | NO |
| Aria | YES | Crash-safe tables with MyISAM heritage | NO | NO | NO |
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
8 rows in set (0.00 sec)

MariaDB [information_schema]>

と、mroongaエンジンが入っていれば、完璧です。

その後は、各ユーザーファンクションを定義して行きます。
MariaDB [information_schema]> CREATE FUNCTION last_insert_grn_id RETURNS INTEGER SONAME 'ha_mroonga.so';
MariaDB [information_schema]> CREATE FUNCTION mroonga_snippet RETURNS STRING SONAME 'ha_mroonga.so';
MariaDB [information_schema]> CREATE FUNCTION mroonga_command RETURNS STRING SONAME 'ha_mroonga.so';
MariaDB [information_schema]> CREATE FUNCTION mroonga_escape RETURNS STRING SONAME 'ha_mroonga.so';

これで、MariaDB+Mroonga環境が出来上がりました。

次回は、最終的な動作試験を行います。
| Tech_Server | 00:43 | comments(0) | - | pookmark |
MariaDB + Mroonga : デーモンとして登録する
ここからは、mysqld を起動する準備を行います。

mariaDB の導入フォルダーの準備
/usr/local/mysql に導入されているので、ひとまずそこに移動して作業開始

% cd /usr/local/mysql

グループ/ユーザー mysql を作って、各フォルダーのアクセス権限を整えます。
% sudo groupadd mysql
% sudo useradd -g mysql mysql
% sudo chown -R mysql .
% sudo chgrp -R mysql .

せっかくのMariaDBですが、デフォルトが mysql となっているので、それに従います。

初期システムDBの作成するのですが… その前に… my.cnf と、環境変数を整えます。

基本的には、導入されたフォルダーにテンプレートが有るので、それをコピーするだけですが、既存の/etc/mysql/my.cnf があれば、コピーを取っておくのがひとまずの常識です…
% sudo cp /etc/mysql/my.cnf /etc/mysql/my.cnf.OLD
% sudo cp /usr/local/mariadb/support-files/my-medium.cnf /etc/mysql/my.cnf

細かい設定は、運用を始めてからでも良いので、とりあえずデフォルトのままです。

root ユーザーのPATH環境変数を変更します。Ubuntuでは、伝統的に /etc/environment にあるらしいので、
% sudo vi /etc/environment

デフォルトは、
1 PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:
/bin:/usr/games:/usr/local/games"
~
~

となっているので、先頭に mysql 関連モジュールパスを記入します。
1 PATH="/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:
/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
~
~

games などの不要なパスを消しても良いかも知れません。
ようやく、初期システムDBを作成するスクリプトを実行します。
% sudo ./scripts/mysql_install_db --user=mysql

数秒で、初期システムDBの作成が終了します。
これで、mysqld を起動する準備が整いましたので、デーモン起動スクリプトを作成し、Startします。
% sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
% sudo /etc/init.d/mysqld start
Starting MySQL
. *
%

成功したようです…(^_^;)

DBが立ち上がったので、MariaDB root ユーザーのパスワードを設定しておきましょう。
% mysqladmin -u root password 'XXXXXXXXXX'

では、MariaDBにログインしてみましょう。
% mysql -uroot -pXXXXXXXXXX
Welcome to the MariaDB monitor. Commands end with ; or ¥g.
Your MariaDB connection id is 4
Server version: 10.0.10-MariaDB-log Source distribution
Copyright (c) 2000, 2014, Oracle, SkySQL Ab and others.
Type 'help;' or '¥h' for help. Type '¥c' to clear the current input statement.

MariaDB [(none)]>

おお!、やっとMariaDBに出会えましたね。
さて次は、Mroongaを有効化して、導入が終了です。
| Tech_Server | 08:12 | comments(0) | - | pookmark |
MariaDB + Mroonga : 導入する…まだ動かない…
さて、本格的にMariaDBをソースからコンパイルして導入します。ですが、まだ動きません。(^_^;)

まず、自分のホームに…
% mkdir ~/src/

などと作業フォルダを作成し、Tarファイルを集めておいて…Tarファイルを展開します。
% cd ~/src/
% tar xvfz mariadb-10.0.10.tar.gz
% tar xvfz mroonga-4.02.tar.gz

Mroongaのソースを、MariaDBソース構造の「ストレージ」フォルダーに移動します。
% mv mroonga-4.02 mariadb-10.0.10/storage/mroonga/

要するに、Mroongaはストレージドライバーの一種なので、MySQL(MariaDB)の一部としてコンパイルする事になります。

ここで、本家ドキュメントにはありませんが、
% sudo apt-get install cmake
% sudo apt-get install libncurse-dev

を済ませておきます。検索しても他の記事には記述が見つかりませんでしたので、WindowsAzure版Ubuntuだけなのかも知れませんが、おまじないの様に…まぁ、cmake が無いのにはちょっと驚きましたが…(^_^;)
% cd mariadb-10.0.10
% cmake .

もし、cmake で失敗したら、表示されたエラーメッセージを良く読んで、対処した後に、CMakeCache.txt を削除してからリトライします。僕の場合は、上で入れた libncurse が無い、と言われてしまって、拙い英語力でなんとか切り抜けました。
正常に、Makefileが作成されたら、普通に…
% make

で、しばらく待ちましょう。さすがにDBサーバーのコンパイルは時間がかかりますね…WindowsAzureの小さなインスタンスでは、30分ほどかかりました。(^_^;) 続けて…
% make install

これは、数分かな…これで、ひとまず導入は終わりました。

しかし、MySQLでもそうですが、MariaDBはソースからコンパイルして導入すると、それぞれのOS(今回の場合はLinuxディストリビューションの一つであるUbuntu)に合った設定をしなくてはなりませんので、まだこのままでは動きません。ついでに、Mroonga特有の設定も必要です…
| Tech_Server | 08:44 | comments(0) | - | pookmark |
MariaDB + Mroonga : Groongaを導入する
まず、前提条件のGroongaを導入します。

これは比較的簡単でで、Groonga ドキュメント (http://groonga.org/ja/docs/)  の
2.4.1. PPA(Personal Package Archive)http://groonga.org/ja/docs/install/ubuntu.html#ppa-personal-package-archive の手順に従います。要するにユニバースを使うので、あまり手間はいりません。

% sudo apt-get -y install software-properties-common
% sudo add-apt-repository -y universe
% sudo add-apt-repository -y ppa:groonga/ppa
% sudo apt-get update
% sudo apt-get -y install groonga

これで、Groongaの導入は終わりですが、最終的に、Mecabをトークナイザーとしますので、以下を追加導入します。
% sudo apt-get -y install groonga-tokenizer-mecab
| Tech_Server | 06:38 | comments(0) | - | pookmark |
MariaDB + Mroonga : 最新ソースの入手
MariaDBと、Mroongaの最新ソースコードを入手します。

Ubuntu14.04LTSから MySQLだけでなく、MariaDB 選択できるのですが、最新の10.0.10は入っていません。また、Mroongaの導入は、MySQLのバージョンに神経質なので、結果的に全てをソースコードからコンパイルするほうが問題が起きにくく、おそらくどのLinuxでも同じように可能なハズです。

基本は、Mroonga本家の、 2.15. MariaDBにバンドルしたソースコードからのインストール(http://mroonga.org/ja/docs/install.html#install-from-the-source-code-with-mariadb) に従います。

今回は、本家のドキュメント通りに、Mroongaのソース・ファイルは、
http://packages.groonga.org/source/mroonga/
の、バージョン:mroonga-4.02.tar.gz

MariaDBのソース・ファイルは、
https://downloads.mariadb.org/mariadb/10.0.10/
の、バージョン:mariadb-10.0.10.tar.gz

を使います。

この時、ひとまずクライアントのローカルにダウンロードしてから、scp でアップロードするのも良いですが、Linux上からwgetで直接ダウンロードした方がてっとり早いですね。
ただ、多くの場合、Linuxサーバー上からは、URLが必要になりますので、それぞれのダウンロードリンクを右クリックしてURLを求めるのが得策です。

今回は、
% wget http://packages.groonga.org/source/mroonga/mroonga-4.02.tar.gz
% wget https://downloads.mariadb.org/interstitial/mariadb-10.0.10/kvm-tarbake-jaunty-x86/mariadb-10.0.10.tar.gz/from/http://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb

な、感じです。

ちなみに、WindowsAzureは外部接続回線が太いのか、wget がかなり高速です。なので、wget を活用しましょう。
| Tech_Server | 11:43 | comments(0) | - | pookmark |
MariaDB + Mroonga : 基本OS「Ubuntu14.04LTS」の設定
Ubuntu 14.04LTS に、MariaDB+Mroonga 導入に成功したので、覚えている内に書いておこうと思います。
しばらく、技術系の記事が続きます。あしからずご了承下さい。

・Ubuntu14.04LTSを選んだ理由
特に理由はありません。12.04の頃からちょっと好きになったと言う程度です。
あえて理由と言えるのは、ここ数年Linuxから離れていて…しばらく仕事でWindows系を強いられていたので…勉強がてらに戻ってみようと思った時に、Ubuntuと言う名前が気になっただけです。昔からDebian系が好きだとか、Redhatが嫌いとか、思い入れは全くありません。
以前の経験からすると、OracleLinuxとか、Vineが主でしたので、Debian系は初めてだったりします。

・サーバーにWindowsAzureを選んだ理由
ubuntu14.04が動く手頃なVPSサーバーを探していたのですが、たまたま興味本位でWindowsAzureの1ヶ月無料権利を入手したところ、既にUbuntu14.04LTSをサポートしていたので、ひとまずそこで導入試験を行うことにしました。
WindowsAzureではubuntu14.04LTS正式リリース前のプレリリース時点からubuntu14.04をサポートしていました。と言う意味では、Ubuntu14.04LTSのAzureリリース版であろうと思いますが、詳細な差異は調べていません。
最終的にWindowsAzureでリリース環境を作りこむのであれば、このまま適用可能と思っていますが、未定ですので、ここではあくまでも一般論として扱います。


という事で…

WindowsAzure の新規仮想マシンインスタンスを、

のギャラリーを選択し…

の手順で、Ubuntu14.04LTS を選択して作成します。(他のオプションはデフォルト、もしくは各環境に合わせて…)

その、Ubuntu 14.04 LTS デフォルトに対して、「Ruby on Rails with OIAX」(http://www.oiax.jp/) さんの、サーバーの準備(Ubuntu Server 12.04 LTS編)(http://www.oiax.jp/rails3book/prepare_ubuntu_12_04.html) を基本OS設定としています。
以下の、
% sudo apt-get update
% sudo apt-get upgrade
% sudo apt-get install build-essential automake ssh git
% sudo apt-get install zlib1g-dev libssl-dev libreadline6-dev libyaml-dev libxml2-dev libxslt-dev
% sudo apt-get install libsqlite3-dev libcurl4-openssl-dev
% sudo apt-get install apache2 openssh-server apache2-prefork-dev libapr1-dev libaprutil1-dev

一連のコマンドを流した後、Ruby , Mecab 関連の導入は、Ubuntu 14.04LTS 標準のUniverseから導入します。14.04LTSパッケージ一覧の…
php5 (5.5.9+dfsg-1ubuntu4)
ruby1.9.3 (1.9.3.484-2ubuntu1) [universe]
mecab (0.996-1.1) [universe]
mecab-ipadic-utf8 (2.7.0-20070801+main-1) [universe]
mecab-jumandic-utf8 (5.1+20070304-3) [universe]

辺りが中心で、関連ライブラリーをその都度入れる感じになります。

と、ここまでが基本OS設定…かな…
もし、単独DBサーバーなら必要のないものもありますが、メンテナンスや試験用に入れておいてもさほど大きな問題は無いと思います。

ここから先は長いので、続く…と言う事で。
| Tech_Server | 18:06 | comments(0) | - | pookmark |
WindowsAzure アップグレードしてみた…
さほど、使用頻度は変わっちゃぁいないんですけどね…先日から使っているWindowsAzure無料評価版を、従量課金制にアップグレードして見ました。


アップグレードとは、なんだか変な表現で、「無料評価版」の場合は、期間(ひと月)もしくはクレジット(20,500円)を過ぎると、有料インスタンスが機能しなくなるんだけど、アップグレードするとデフォルトで「従量課金制」になる事で、同じく期間とクレジットを超えた時点で、課金される、っていうだけなんですよね…
まぁ、僕の場合は、基本的に実験用途なので最悪はインスタンスを消してしまえば無料のまま、っていうのを狙ってます。なんですが、ここ…WindowsAzure…は、どうもインスタンスを止めてればけっこう安い価格で済んでいる…(日に数時間のインスタンス利用で、それ以外の時間は止めてるので、ストレージのコストだけがかかっている感じ)…ように思うので、この程度の価格なら少し続けてみようかと…思ってます。
どんなに安いVPSでも、月に800円くらいはかかりますからね。^^;

ちなみに、これ以外の契約だと…


色々と有るわけですが、価格的にかつ実用価値の高い…実運用向きな…契約形態ばかりなので、僕の用途にはマッチしない。
ついでに、サーバーは、


てな具合の価格なので、安価なVPSに比べるとかなり高いのですが、今のところの体感的な速度は結構なものなので、予算取って本格的な実験用途には良いかもなぁ、と思っています。

ちなみに、この価格はLinuxインスタンスのページなのですが…Windowsインスタンスも変わらぬ価格。Windowsサーバーのライセンス料が別途かかる訳じゃないので、特殊なWebサーバー構築とかで、Linuxが苦手な技術者さんの実証環境にも使えそう…^^;
続きを読む >>
| Tech_Server | 21:00 | comments(0) | - | pookmark |
WindowsAzure 無料評価版を使ってみる
AmazonWebServiceの無料版も申し込んで見たんだけど、今ひとつわかりにくくて、情報も肝心な所が英語だったりで、急ぎで確認したい事ができない感があったので、WindowsAzureも申し込んでみました。

当然、無料枠なわけだけど…その無料枠というのがAmazonとは違う考えで、これまた分かりにくい…

ダッシュボードから見ると、こんな表示があって、事前に無料枠用のクレジット金額2万500円がチャージされている状態で、それを期間中に使い切ったら、無料枠から外れてしまう、ということらしい。

しかし、

その、無料枠の減り具合を見る限りだと、昨日から13円しか使ってない。

ちなみに、今のところは
・Webサーバー(Windows?)
・Linuxサーバー
の2つインスタンスを作ってあって、それぞれあまりセキュリティもかけてないので、使ってない時間帯は停止してたりする訳ですが、それにしてもほぼ1日たって13円かぁ〜。
確かWebサーバーは無料だったはずなので、極小のLinuxインスタンスを数時間使った結果が、この金額ということらしい。ただ、インスタンスはそのまま残してあるので、HDDは専有している状態でもけっこう安いなぁ、という印象。

考えてみると、期間を過ぎるとこの無料枠クレジットは無駄になるんだろうか? いやぁ、従量制の契約に移行すれば、そのまま持ち越してくれると良いなぁ、などと考えてますが、そうは行かないんだろうなぁ。
いずれにしろ、実験用にどこかのサーバー借りて…なぁんて考えていたやさきなだったので、日に十数円ならひとまず従量制に移行しても良いかも、と思ってます。Webサーバー機能なら、基本的に無料らしいし…(^_^;)
以前の考え通り、自分でどこかのVPSに建てるのも良いのだけど、何処のVPSもけっこう遅い感じがしていて、ここ…WindowsAzure…ならひとまず速度的には問題なさそうだ。SSHアクセスもあまりストレスないし、何よりもCloudから外へのアクセスが早いのが助かりますね。Wgetやら、Gitやらがやたら早くて、同じようにapt-get update/upgradeなんかもストレスなし…^^;

ちなみに、Linuxインスタンスは、Ubuntuの次期LTS版を試用中。14.04LTSプレバージョンなので、けっこう面白いです。
続きを読む >>
| Tech_Server | 23:55 | comments(0) | - | pookmark |
Windowsクライアントから、Linuxサーバーにファイルを送り込む 実証の巻
昨日からの続きです…

Windowsクライアントから、Linuxサーバーにファイルを送り込む設定はこんな感じ、というお話です。

PuTTyを使う事にしたので、まずはダウンロードしなくてはなりません。PuTTyの本家は、ここ
http://www.chiark.greenend.org.uk/~sgtatham/putty/
ダウンロードはここで、
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
それぞれのプログラムをexeファイルで配布しているところを見ると、インストーラーは必要なさそうなので、ZIPで固めたパッケージを落とすことにします。

注;PuTTyには、日本語サポートなどの派生バージョンが有るみたいですが、本家が一番、と言うのは、僕の個人的な考え方…特に日本語が通らない、ってわけでもないでしょうし…なのであしからず。


putty.zip を落として、解凍すると、いっぱいファイルが出てくるのですが、名前からすると、この2つがあればなんとかなりそうです…
PUTTYGEN.EXE : 暗号化キーを作るツール…これはGUI版でした。
PSCP.EXE   : 実際にサーバーにコピーするプログラム

ほかは要らないだろうとは言え、ひとまず任意のフォルダーに解凍したファイルたちを移動してから、そのフォルダー(パス)を、PATH環境変数に登録する事にしました。
本来、バッチファイルに記述するときは、フルパスを書けば良いわけだけど、今のところは、Dos窓から色々と試験したいので、それでは面倒なので…
 PATH環境変数の変更は、また別の機会に…


まず、PUTTYGEN.EXE を起動して、
・「SSH2-RSA」 にチェックを入れ
・「Number of bits in generated key:」に、「2048」を入力して
・「Generate」ボタン押下

この生成中の画面上半分のところで、マウスを動かし続けると、ほどなく暗号化キーの作成が終わります。マウスを動かし続けないと、生成作業が進まないので、このプログラムは、マウスの移動軌跡値を利用して、暗号化キーを生成しているらしいです…こんな方法もあったんだなぁ〜、って。^^;
ちなみに、Bit数を2048にするのは、Linux系OpenSSHで ssh-keygen は、デフォルトで2048だったはずなのと、2048あれば十分である、と言われているからで、それ以上の根拠はありません。

生成し終わると…

この画面になったら、中程の
・「Key passphrase: 」
・「Comfirm passphrase: 」
の2つを任意の文字列で埋めます。要するに、この公開鍵セットのパスワード。実際にログインする際のパスワードとは異なるものを設定するのが良いでしょう。

で、「Save Public Key」「Save private Key」のそれぞれのボタンで、キーファイルセットを保存するわけです。
今回は、公開鍵ファイルを、PuTTy.pub
    秘密鍵ファイルを、PuTTy.ppk としました。
Dos窓を起動して、保存したフォルダーに移動して、出来上がった公開鍵ファイルをサーバーに転送するコマンド
C:¥PuTTy¥.ssh>pscp -P 22 -l moto_chor -pw xyxyxyxyxy PuTTy.pub MyLinux.Com:./

を、実行します。
・-l moto_chor は、サーバー上の自分のID
・-pw xyxyxyxyxy は、そのパスワード
・MyLinux.Comは、サーバーのURL(なければIPアドレス)
・./ は、転送先のフォルダ指定なので、自分の環境にあわせて…
・-P 22 SSHのポート番号です。デフォルトは22なので、本来は指定しなくても良いです。
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.
Store key in cache? (y/n) y
PuTTy.pub | 0 kB | 0.5 kB/s | ETA: 00:00:00 | 100%

C:¥PuTTy¥.ssh>

と、転送が完了します。
初めての転送先の場合、こんな風に、何かしら聞いてきますがYで答えないと完了しませんので…よく読んでみたら、やっぱりやめたくてもです。

転送サーバーの中を見てみると…
moto_chor@MyLinux:~$ ls -al PuTTy.pub
-rw-r--r-- 1 moto_chor moto_chor 464 2012-11-01 18:08 PuTTy.pub
moto_chor@MyLinux:~$

さて、ここからはおまじない…
PuTTyで作り上げた公開鍵ファイルは、Linux標準のOpenSSHでは使えないので、フォーマットを変換します。
$ ssh-keygen -i -f PuTTy.pub >> .ssh/authorized_keys

この例では変換ついでに、OpenSSH のAutholizedKeyファイルに追加しちゃってます…
注;初めてで.ssh フォルダが無いなら、mkdirで作って、パーミッションを700に (chmod 700 .ssh) …次に上のコマンドを実行して…authorized_keysファイルができたら、authorized_keysのパーミッションは600 (chmod 600 .ssh/authorized_keys) にしておきます。
$ chmod 700 .ssh
$ ssh-keygen -i -f PuTTy.pub >> .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys
な感じになります。


さて、クライアントに戻って、暗号化キーセットを使って、ファイルを転送して見ましょう。
C:¥PuTTy>pscp -P 22 -i PuTTy.ppk -l moto_chor -pw xxxxxxxx PUTTY.* MyLinux.Com:./
PUTTY.CHM        | 436 kB | 436.5 kB/s | ETA: 00:00:00 | 100%
PUTTY.CNT        | 31 kB | 31.3 kB/s | ETA: 00:00:00 | 100%
PUTTY.EXE        | 472 kB | 472.0 kB/s | ETA: 00:00:00 | 100%
PUTTY.HLP        | 641 kB | 641.9 kB/s | ETA: 00:00:00 | 100%
C:¥PuTTy>

コマンドの、
・-i PuTTy.ppk は、パブリックキーファイルを指定しています。
・-l moto_chor は、先ほどと同じサーバー上のIDです。
・-pw xxxxxxxx は、PUTTYGEN.EXEでパブリックキーファイルを作った時に指定した passphrase を指定します。
・-P 22 SSHのポート番号です。デフォルトは22なので、本来は指定しなくても良いです。

ここで、せっかく公開鍵ペアによる認証を実現したわけですから、Linux側で本当にちゃんと認証されているのかチェックしておきましょう。
$ tail /var/log/auth.log
MyLinux sshd[4637]: Accepted publickey for moto_chor from 153.137.55.211 port 44853 ssh2
MyLinux sshd[4637]: pam_unix(sshd:session): session opened for user moto_chor by (uid=0)
MyLinux sshd[4707]: subsystem request for sftp
MyLinux sshd[4637]: pam_unix(sshd:session): session closed for user moto_chor
$

良いようです。

これでかなり安心してファイル転送ができるようになりましたし、将来的なサーバーセキュリティとして、パスワード認証の禁止、使えるようになった訳です。(^^ゞ
続きを読む >>
| Tech_Server | 12:43 | comments(0) | - | pookmark |
| 1/2PAGES | >>