カテゴリー : 2012年 2月

[SSH] 公開鍵の設置時に気を付ける事と、Permission denied (publickey,gssapi-with-mic). が出たときの対処方法

SSH の公開鍵をサーバーに設置した後、いざ鍵認証で接続しようとすると下記のようなエラーを出すことがよくあります。

Permission denied (publickey,gssapi-with-mic).

SSH公開鍵の設置時にやること

・リモート側の .ssh ディレクトリの Permission を 700 に変更する

・公開鍵ファイル(authorized_keys)の Permission を 600 に変更する

# chmod 700 .ssh/
# chmod 600 .ssh/authorized_keys

・リモート側の .ssh ディレクトリのアクセス権限を SSH 接続するユーザに変更する

・公開鍵ファイルのアクセス権限を SSH 接続するユーザに変更する

(例) 権限を ユーザ: codenote、グループ: programmer に変更する

# chown codenote:programmer .ssh/
# chown codenote:programmer .ssh/authorized_keys

以上です。

【参考】

sshで「Permission denied (publickey,gssapi-with-mic).」が出た時 – 今日とは違う明日

Twitter Bootstrap を入門するときに参考になりそうな記事まとめ

Twitter Bootstrap を入門するときに参考になりそうな記事をまとめてみました。

(最終更新日:2012/04/14)

公式

・公式:Bootstrap, from Twitter はてなブックマーク - Bootstrap, from Twitter

twitter/bootstrap はてなブックマーク - twitter/bootstrap
 

入門記事

ドットインストールのチュートリアル動画は分かりやすくておすすめなので、とりあえず最初はこれを観ましょう。

Twitter Bootstrap (v2.0)の基礎 – ドットインストール はてなブックマーク - Twitter Bootstrap (v2.0)の基礎 - ドットインストール

アシアルのブログ。使い方がざっくり分かって最初のうちに読んでおくと幸せになれそう。

超便利!Twitter BootstrapでさくさくWeb開発 : アシアルブログ はてなブックマーク - 超便利!Twitter BootstrapでさくさくWeb開発 : アシアルブログ
 

紹介記事

Twitter Bootstrapが大幅バージョンアップ!して凄まじいことに・・・ | IDEA*IDEA はてなブックマーク - Twitter Bootstrapが大幅バージョンアップ!して凄まじいことに・・・ | IDEA*IDEA

これからTwitter Bootstrapをはじめる人のためのエントリまとめ – 大人になったら肺呼吸 はてなブックマーク - これからTwitter Bootstrapをはじめる人のためのエントリまとめ - 大人になったら肺呼吸
 

カスタマイズ系の記事

jQuery Mobile向けBootstrapテーマ集「Twitter Bootstrap jQuery Mobile Theme」 – MOONGIFT|オープンソース・ソフトウェア紹介を軸としたITエンジニア、Webデザイナー向けブログ はてなブックマーク - jQuery Mobile向けBootstrapテーマ集「Twitter Bootstrap jQuery Mobile Theme」 - MOONGIFT|オープンソース・ソフトウェア紹介を軸としたITエンジニア、Webデザイナー向けブログ

Twitter Bootstrapの配色を簡単に変えられる「Bootswatch」 | CREAMU はてなブックマーク - Twitter Bootstrapの配色を簡単に変えられる「Bootswatch」 | CREAMU

Twitter Bootstrapのデザインを簡単に変更出来るWebサービス・StyleBootstrap – かちびと.net はてなブックマーク - Twitter Bootstrapのデザインを簡単に変更出来るWebサービス・StyleBootstrap - かちびと.net

15秒でHTML5のテンプレを作成出来るWebツール・InitializrがTwitter Bootstrap 2にも対応した模様です – かちびと.net はてなブックマーク - 15秒でHTML5のテンプレを作成出来るWebツール・InitializrがTwitter Bootstrap 2にも対応した模様です - かちびと.net

Twitter Bootstrapのさまざまなテーマをダウンロードできる『Bootswatch』 | 100SHIKI はてなブックマーク - Twitter Bootstrapのさまざまなテーマをダウンロードできる『Bootswatch』 | 100SHIKI

Bootstrapをもっと活用するためのカスタマイズツールやリソースのまとめ | コリス はてなブックマーク - Bootstrapをもっと活用するためのカスタマイズツールやリソースのまとめ | コリス

色をカスタマイズする

Bootstrapを使おう!様々なカラーテーマ、プラグインを用意「Kickstrap」 – MOONGIFT|オープンソース・ソフトウェア紹介を軸としたITエンジニア、Webデザイナー向けブログ はてなブックマーク - Bootstrapを使おう!様々なカラーテーマ、プラグインを用意「Kickstrap」 - MOONGIFT|オープンソース・ソフトウェア紹介を軸としたITエンジニア、Webデザイナー向けブログ

Kickstrap: Enhancements for Bootstrap はてなブックマーク - Kickstrap: Enhancements for Bootstrap

ajkochanowicz/Kickstrap はてなブックマーク - ajkochanowicz/Kickstrap
 

Ruby on Rails用カスタマイズ

Twitter BootstrapをSASSにする – KUROIGAMEN(黒い画面) はてなブックマーク - Twitter BootstrapをSASSにする - KUROIGAMEN(黒い画面)

twitter bootstrap railsを使ったら職が見つかり彼女も出来て背も3センチ伸びました。 – ppworks blog はてなブックマーク - twitter bootstrap railsを使ったら職が見つかり彼女も出来て背も3センチ伸びました。 - ppworks blog

sass-rails-bootstrap を使ったら職が(ry – ぶろぐ。@はてな はてなブックマーク - sass-rails-bootstrap を使ったら職が(ry - ぶろぐ。@はてな
 

スライド資料

Twitter bootstrap入門 #twtr_hack

View more presentations from makingx

以上です。(随時更新予定)

[Ruby on Rails 3.1] lib ディレクトリ以下に自作ライブラリを置いて autoload を有効にする設定方法

Ruby on Rails 3.1 にて、lib ディレクトリ以下に自作ライブラリを置いて、オートロードする設定方法を調べたのでメモ。

Rails3 で autoload はデフォルトで無効になっているので、config/application.rb でオートロードを有効にしてやる必要があります。

■ config/application.rb:

# Custom directories with classes and modules you want to be autoloadable.
# config.autoload_paths += %W(#{config.root}/extras)
config.autoload_paths += %W(#{config.root}/lib)  # 追加
config.autoload_paths += Dir["#{config.root}/lib/**/"] # 追加

僕はこの設定で autoload が有効になりましたが、これでもダメな場合は、ここを参考にしてみるといいかも。

自作ライブラリをrequireするためにやったこと – 喉鳴らす未来に達し はてなブックマーク - 自作ライブラリをrequireするためにやったこと - 喉鳴らす未来に達し

以上です。

【参考】

Rails3でautoloadはデフォルトで無効になっている – INOHILOG はてなブックマーク - Rails3でautoloadはデフォルトで無効になっている - INOHILOG

Rails 3 Quicktip: Autoload lib directory including all subdirectories, avoid lazy loading はてなブックマーク - Rails 3 Quicktip: Autoload lib directory including all subdirectories, avoid lazy loading

Rails 3 autoload – Stack Overflow はてなブックマーク - Rails 3 autoload - Stack Overflow

Ruby/Ruby on Rails/libディレクトリとオートロードと自作ライブラリ – TOBY SOFT wiki はてなブックマーク - Ruby/Ruby on Rails/libディレクトリとオートロードと自作ライブラリ - TOBY SOFT wiki

[Ruby] 文字列と配列の変換方法

Rubyで、文字列を配列、配列を文字列に変換する方法をそれぞれ調べたのでメモ。

■ 文字列を配列に変換する方法

文字列を配列に変換するには、splitを使います。

"Ruby on Rails".split(" ")
=> ["Ruby", "on", "Rails"]

■ 配列を文字列に変換する方法

配列を文字列に変換するには、joinを使います。

["Ruby", "on", "Rails"].join(",")
=> "Ruby,on,Rails"

以上です。

【参考】

Ruby/文字列を配列に変換する方法(逆も) – TOBY SOFT wiki はてなブックマーク - Ruby/文字列を配列に変換する方法(逆も) - TOBY SOFT wiki

文字列を分割する – 文字列(String)クラス – Ruby入門 はてなブックマーク - 文字列を分割する - 文字列(String)クラス - Ruby入門

[Ruby] RVM環境での sudo は rvmsudo を使う

RVM 上に構築した Ruby on Rails で WEBrick サーバを 443 Port 指定で起動するために、sudo で実行したところエラーが発生しました。

■ エラー内容

$ sudo rails s -p 443
Password:
/Users/bakorer/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find rails (>= 0) amongst [minitest-1.6.0, rake-0.8.7, rdoc-2.5.8] (Gem::LoadError)
	from /Users/bakorer/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
	from /Users/bakorer/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems.rb:1208:in `gem'
	from /Users/bakorer/.rvm/gems/ruby-1.9.2-p290@mygemset/bin/rails:18:in `<main>'

原因は、Rails の開発環境を RVM で構築していたせいでした。

rvm 環境上で ruby や rails コマンドで sudo が必要な場合は rvmsudo を使わないといけないみたいです。

$ rvmsudo rails s -p 443
Password:
=> Booting WEBrick
=> Rails 3.1.0 application starting in development on http://0.0.0.0:443
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-02-23 23:58:43] INFO  WEBrick 1.3.1
[2012-02-23 23:58:43] INFO  ruby 1.9.2 (2011-07-09) [x86_64-darwin11.3.0]
[2012-02-23 23:58:43] INFO  WEBrick::HTTPServer#start: pid=4649 port=443

rvmsudo でやったら上手くいきました。

以上です。

【参考】

ruby – Could not find heroku (>= 0) amongst [] (Gem::LoadError) – Stack Overflow

RVM環境での sudo は rvmsudo だった。。 – The Second Longest Day in My Life…

rvm環境でsudoしたいときはrvmsudoを使う – OR6 blog

[ClamAV] WARNING: Clamd was NOT notified: Can’t connect to clamd through /var/run/clamav/clamd.sock

ClamAV を Cron に登録するためのシェルスクリプトを作成して、確認のため実行したら、ウイルス定義のパターンファイル更新時にエラーが発生しました。

ちなみに、シェルスクリプトの内容は下記のような感じです。

/usr/local/scripts/clamav.sh

#!/bin/bash
 
logfile="/var/log/clamav/clamav_$(date +%Y%m%d%H%M).log"
update_logfile="/var/log/clamav/clamav_update.log"
mail_to="notice@localhost"
mail_from="notice@example.com"
 
/usr/bin/freshclam --quiet -u root -l ${update_logfile} > /dev/null 2>&1
/usr/bin/clamscan -r -i --quiet -l ${logfile} \
--exclude-dir="/sys" \
/ > /dev/null 2>&1
 
if [ $? != 0 ]
then
  cat ${logfile} | mail -s "[ClamAV report] $(hostname)" ${mail_to} -- -f $mail_from
fi

エラー内容

WARNING: Clamd was NOT notified: Can't connect to clamd through /var/run/clamav/clamd.sock

警告が出たので /var/run/clamav/clamd.sock を確認してみるとありませんでした。

それもそのはず、clamd をデーモンで起動させていないので、freshclam がウイルス定義のパターンファイルを更新後、clamd に通知できないのが原因でした。

freshclam.conf ファイルの NotifyClamd の行をコメントアウトしてあげればOKです。

/etc/freshclam.conf

NotifyClamd /etc/clamd.conf
 
↓(コメントアウト)
 
#NotifyClamd /etc/clamd.conf

参考情報

/etc/freshclam.confで
NotifyClamd /etc/clamd.conf
と設定されている場合
freshclam はウイルス定義のパターンファイルを更新した後、clamd にその旨を通知しようとします
しかしclamdが起動していない場合は、通知できず上記のエラーが出るようです

clamdデーモンを起動させない場合は、上記の設定を無効にします
#NotifyClamd /etc/clamd.conf

もし clamdデーモンが起動していてエラーがでる場合は /tmp/clamd.sockが存在するか確認します
clamdが起動していてsockファイルが存在しない場合

/etc/clamd.confで
LocalSocket /tmp/clamd.sock
#TCPSocket 3310
になっているか確認します

・引用元 質問掲示板 – CentOSで自宅サーバー構築

以上です。

[Cacti] 監視対象の追加手順メモ

Cactiにて、監視対象を追加する手順をメモ。

■ 追加手順

1. Console > Devices > Add
  ・Description: 概要名
  ・Hostname:  監視対象のホスト名、もしくは、IPアドレス
  ・Host Template: ucd/net SNMP Host を選択
  その他は、デフォルトのまま。

2. Create Graphs for this Host
  ・全てチェックを入れて、作成

3. Console > Graph Trees > [追加対象のグループ名をクリック] > Tree Items にて Add
  ・Tree Item Type: Host
  を選択して create をクリックする
 

以上です。
 

SNMP を入門するときに参考になった記事まとめ

SNMP(Simple Network Management Protocol) を入門して理解するまでに読んだ記事をまとめました。

ITmediaの『SNMPによるネットワークモニタリング「第2版」』が分かりやすくまとまっていておすすめです。
 

ITmedia エンタープライズ:SNMPによるネットワークモニタリング「第2版」――楽をするためのサーバ監視術、最新版。 はてなブックマーク - ITmedia エンタープライズ:SNMPによるネットワークモニタリング「第2版」――楽をするためのサーバ監視術、最新版。

 ・第1回 サーバ監視にSNMPを使う理由 (1/2) はてなブックマーク - SNMPによるネットワークモニタリング「第2版」:第1回 サーバ監視にSNMPを使う理由 (1/2) - ITmedia エンタープライズ

 ・第2回 現在版サーバ運用の隠れた“モニタリング事情” (1/2) はてなブックマーク - SNMPによるネットワークモニタリング「第2版」:第2回 現在版サーバ運用の隠れた“モニタリング事情” (1/2) - ITmedia エンタープライズ

 ・第3回 SNMPによるモニタリングセキュリティの実態 (1/5) はてなブックマーク - SNMPによるネットワークモニタリング「第2版」:第3回 SNMPによるモニタリングセキュリティの実態 (1/5) - ITmedia エンタープライズ

 ・第4回 SNMPとv3セキュリティ (1/4) はてなブックマーク - SNMPによるネットワークモニタリング「第2版」:第4回 SNMPとv3セキュリティ (1/4) - ITmedia エンタープライズ

 ・第5回 図解で知るSNMP――MIB情報のすべて (1/8) はてなブックマーク - SNMPによるネットワークモニタリング「第2版」:第5回 図解で知るSNMP――MIB情報のすべて (1/8) - ITmedia エンタープライズ

 ・24時間稼働のために――サーバ管理者が知っておくべき自動復帰ノウハウ (1/2) はてなブックマーク - SNMPによるネットワークモニタリング「第2版」:24時間稼働のために――サーバ管理者が知っておくべき自動復帰ノウハウ (1/2) - ITmedia エンタープライズ

 ・第6回 サーバ異常をSNMPで通知させるには (1/6) はてなブックマーク - SNMPによるネットワークモニタリング「第2版」:第6回 サーバ異常をSNMPで通知させるには (1/6) - ITmedia エンタープライズ
 

エンタープライズ: – 第6回:SNMPによるネットワークモニタリング はてなブックマーク - エンタープライズ: - 第6回:SNMPによるネットワークモニタリング
 

net-snmpについて:CodeZine(コードジン) はてなブックマーク - net-snmpについて:CodeZine(コードジン)

 ・net-snmpについて(基礎知識)(1/3):CodeZine はてなブックマーク - net-snmpについて(基礎知識)(1/3):CodeZine

 ・net-snmpについて(環境構築)(1/3):CodeZine はてなブックマーク - net-snmpについて(環境構築)(1/3):CodeZine

とりあえず、以上です。
 

[SSH][Putty] ログイン先のサーバーでSSH公開鍵認証でログインしようとしたら Permission denied (publickey,gssapi-with-mic).

Putty でSSHでログインしたサーバーから更に、SSH公開鍵認証で他のサーバーにログインしようとしたらエラーが発生しました。

■ エラー内容

$ ssh example.com
Permission denied (publickey,gssapi-with-mic).

原因は、Pagent の認証鍵の転送の設定がちゃんとできていなかったためです。

認証鍵の転送

Pageant は ssh-agent と同じく、認証鍵の転送機能を持っています。これを利用すれば、たとえログイン先のサーバーに認証鍵がなくても、ローカルにある認証鍵を使用してログイン先からさらに別のサーバーに SSH 接続を確立できます。サーバーに秘密鍵を保存する必要が無いため、秘密鍵の流出の危険を大幅に削減できます。

Pageant による認証鍵の転送は以下の手順で利用できます。

1. Pageant を起動し、必要な認証鍵を登録する。

2. PuTTY を起動する。

3. 普通に SSH ログインするのですが、その際に [接続]-[SSH]-[認証] の「エージェントフォワーディングを認める」にチェックを入れておきます。もしくは、起動時に “-A” オプションを指定する方法もあります。

4. ログイン先で、さらに “ssh <ユーザー名>@<ホスト名>” などとしてさらに別のホストにログインします。

5. Pageant に必要な認証鍵が登録されていれば、正常にログインできるはずです。

なお、Pageant で認証鍵の転送機能を利用するためには、ログイン先の SSH サーバーが OpenSSH でなければなりません。本家 SSH は OpenSSH とは別のプロトコルを使用しており、そちらは Pageant ではサポートされていません。

・引用元:Pageant でパスフレーズの入力を省く – WebOS Goodies はてなブックマーク - Pageant でパスフレーズの入力を省く - WebOS Goodies

僕の場合は、Pageantへの認証鍵の登録はしていたのですが、「エージェントフォワーディングを認める」にチェックを入れていなかったので、正常に認証鍵の転送ができていなかったみたいです。

SSH公開鍵・秘密鍵ファイルをコピーして使ったら WARNING: UNPROTECTED PRIVATE KEY FILE と警告された

Mac をクリーンインストールして、前から使っていた SSH公開鍵・秘密鍵ファイルを ~/.ssh 以下にコピーして使ったら警告が出ました。

$ git push heroku master
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/bakorer/.ssh/id_rsa' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /Users/bakorer/.ssh/id_rsa
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

調べたらドンピシャな記事がありました。

MacでSSH公開鍵・秘密鍵ファイルをコピーして使ったら警告がでた – アインシュタインの電話番号☎ はてなブックマーク - MacでSSH公開鍵・秘密鍵ファイルをコピーして使ったら警告がでた - アインシュタインの電話番号☎

SSH秘密鍵のパーミッションが 600 じゃないといけないということで、早速変更しました。

$ ls -al ~/.ssh/
total 24
drwxr-xr-x   5 bakorer  staff   170  2 11 11:49 .
drwxr-xr-x+ 26 bakorer  staff   884  2 11 11:39 ..
-rw-r--r--   1 bakorer  staff  1743  2 11 01:34 id_rsa
-rw-r--r--   1 bakorer  staff   410  2 11 01:34 id_rsa.pub
-rw-r--r--   1 bakorer  staff   405  2 11 11:49 known_hosts
 
$ chmod 600 ~/.ssh/id_rsa
$ ls -al ~/.ssh/
total 24
drwxr-xr-x   5 bakorer  staff   170  2 11 11:49 .
drwxr-xr-x+ 26 bakorer  staff   884  2 11 11:39 ..
-rw-------   1 bakorer  staff  1743  2 11 01:34 id_rsa
-rw-r--r--   1 bakorer  staff   410  2 11 01:34 id_rsa.pub
-rw-r--r--   1 bakorer  staff   405  2 11 11:49 known_hosts

今度はちゃんと git push できました。

$ git push heroku master
Everything up-to-date

以上です。