sshで違うサーバーに接続しようとしたときに、こんな警告メッセージが出ることがあります。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
55:6d:ss:67:1c:6a:ee:4c:1c:5t:cb:23:dd:0e:59:aa.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:6
RSA host key for 192.168.123.170 has changed and you have requested strict checking.
Host key verification failed.
lost connection

これは、SSHがセキュリティのために最初の接続時に生成するRSAキーが変わっているために、「同じサーバーではない。誰かがアタックした可能性がある!」ということで接続が遮断されているというものです。

例えばバーチャルサーバーで、中身を差し替えたときなど、意識的にサーバーを変えたときにも発生します。
そんなときは、known_hostsファイルから、該当サーバーの鍵が記述されている行を削除して、もう一度つなぎ直します。

/root/.ssh/known_hosts

192.168.123.1 ssh-rsa AAAoph97fr08261gbYF(IUHJopig089gukfgyuOI)GUHIJPOK97gf807yuhoj9ukkbtsd87tuyijg8yiguh0p@l

192.168.123.2 ssh-rsa AAAoph97fr08261gbYF(IUHJopig089gukfgyuOI)GUHIJPOK97gf807yuhoj9ukkbtsd87tuyijg8yiguh0p@l

192.168.123.3 ssh-rsa AAAoph97fr08261gbYF(IUHJopig089gukfgyuOI)GUHIJPOK97gf807yuhoj9ukkbtsd87tuyijg8yiguh0p@l <-この行を削除!

鍵は、最初の接続時に自動で作られるので、削除してしまって問題ないのです。

(もちろん、身に覚えがないのにこのエラーが発生したら、もしかして本当に攻撃を受けたのかも知れません!)

CentOSをインストール後、最初の起動時に、FirewallとSELinuxを設定する画面が現れます。大体の人はLinuxのFirewallは切ると思いますが、ここでまごまごしていると、飛ばしてそのままログイン画面に移ってしまいます。

ログインした後からFirewallとSELinuxを設定する方法です。

setup

この単純なコマンドを入力すると、最初のインストール時のような青い設定画面が現れます。
ここでネットワーク関連の設定が色々できます。

FirewallとSELinuxだけ設定する場合

system-config-securitylevel-tui

このコマンドを入力すると、FirewallとSELinuxだけの設定画面が現れます。

system-configure-securitylevel

system-configure-securitylevel

Security Level ( ) Enabled (*) Disabled

   SELinux: Disabled

にすればOKです。

今の設定がどうなっているか確認

getenforce

のコマンドで、現在SELinuxがどういう設定で動いているかがgetできます。

enforcing

で、設定のオン・オフ(permissive / enforcing)を切り替えます。

# setenforce 0 →permissiveモードに切り替える
# setenforce 1 →enforcingモードに切り替える

vi(vim)で編集していて、他のソースからコピペして貼り付けようとすると、インデントが重なってものすごくネストが深くなってしまいます。

(例)

<div class="content">
	<h2>見出し</h2>
	<p>本文本文</p>
	<ul>
		<li>リスト1</li>
		<li>リスト2 </li>
	</ul>
</div>

こんなソースが…

<div class="content">
    <h2>見出し</h2>        <p>本文本文</p>            <ul>                    <li>リスト1</li>
                            <li>リスト2 </li>
                                </ul>                                </div>

こうなってしまう!

これは、vimの設定で「autoindent」という項目がONになっているから起こる現象です。
解除するためには、コマンドモードで

:set noautoindent

と入力すればOKです。

ちなみに、

:set

のコマンドで、現在有効になっている設定の一覧が表示されます。

リナックスにはmailコマンドというのがあります。サーバー上で直接メールの送受信を行なうコマンドです。

mail コマンド

【書式】

mail [-s 題名] [宛先]

このコマンドを実行すると、本文、CCを順に入力するようになります。
本文を入力し終わったら「.」ドットで終了させます。

【例】

[dacelo@info]$ mail -s テストメール dacelo@example.com
本文です。
.
Cc: copy@example.com(空白でも可)

オプション&Tips

ただ、これだとテストメールを送るくらいしか使えないので、いくつかネタを。

まず、日本語のメールを送ろうとすると、大抵文字化けしちゃうんですよね。
これを回避するには、あらかじめテキストファイルを作っておいて、nkfでそれを読み出して、パイプでmailコマンドに渡す、という方法があります。

[dacelo@info]$ nkf -j mailtest | mail -s 日本語のテストメール。 dacelo@example.com

まあちょっと二度手間で面倒くさいんですが。

メールのFromを指定

普通に送ると、
dacelo@localdomain
などのユーザー名&サーバーホスト名でのメールが送られます。ここに返信されても困りますし、メールのFromを指定しましょう。
メールコマンドの最後に「–」(ハイフン2つ)を付けて、「-f メールアドレス」を入力します。

[dacelo@info]$$ mail -s テストメール dacelo@example.com — -f test@test.test

これで、test@test.testからのメールとして届きます。

tableに1000件くらいデータが入ってるんだけど、その中でtypeというキーに何種類くらいの値があるか知りたい…。そんなときに使います。

SELECT DISTINCT (type), *
FROM `table`

subversionでコミットしようとしたら失敗した。

[dacelo@info]$ svn commit
svn: コミットに失敗しました (詳しい理由は以下のとおりです):
svn: ログメッセージを取得するのに外部エディタを使えませんでした。$SVN_EDITOR 環境変数を設定するか、--message (-m) か --file (-F) オプションを用いてみてください
svn: 環境変数 SVN_EDITOR, VISUAL, EDITOR のどれも設定されていなく、実行時の設定オプション 'editor-cmd' も見つかりません

svn updateは問題なくできているので、環境のせいではなさそう。
エラーメッセージによると、メッセージを編集するためのエディタが指定されていない、ということだった。

SVNコミットする際は、必ずコミット時メッセージが必要になるので、こまんどでメッセージを挿入するか、外部エディタを設定すればよい。

svn commit -m 'ここにコメント'
[dacelo@info CMScontroler]$ svn commit -m 'sidebar exclude設定'
送信しています              CMS/content.php
ファイルのデータを送信中です.....
リビジョン 3794 をコミットしました。

外部エディタにviを指定する方法でもOK。

# EDITOR=vi svn commit

phpで書かれたWebベースのPostgreSQL管理ツール、phpPgAdminのレスキューtipsです。

phpPgAdmin :: Web Based PostgreSQL Administration Toolで、ちゃんと設置したはずなのにログインできない!」
というときのために、検索用の覚え書き。

それらをWEBブラウザ上で操作できるようにするPHPプログラムが、phpMyAdminとphpPgAdmin。
そのうち、phpPgAdminはPostgreSQL用のそれ。phpPgAdminはphpMyAdminよりもインストールでハマる可能性が高いと思います。

以下、「ログインできない!」と焦ったときのチェックポイント。

Read the rest of this entry »

viで編集しているとき、間違ったときはUで戻せる(Undo)。
ではUで戻しすぎたときは…?
というのがよく分からなくなるのでメモ。
あとは十字キーではなく、文字でのカーソル移動。

aaaaaaah カーソルを左へ移動する。
j カーソルを下へ移動する。
k カーソルを上へ移動する。
l(エル) カーソルを右へ移動する。
u UNDO。変更を元に戻す。
Ctrl + r Redo。「u」で戻しすぎた変更を元に戻す。

viキー操作メモ(Hishidama’s vi Memo)

PHPの開発効率を上げる10個の関数 – PHP,MySQL,Flexな日々+イラストとか

変数、配列の内容をキレイに表示する関数「d」

変数や配列の内容をHTML構文でキレイに表示してくれます。

しかも、var_dumpと書くとタイピングが大変なので「d($hoge)」として簡単に記述。

これだけでも作業効率8倍

PHPの便利な関数色々。
こうして、自分のよく使う処理をオリジナル関数として持っておくと使い回せて便利そうですね。

WordPressを2.84にアップデートしたらフェイタルエラーで表示不能に。

Fatal error: Call to undefined method WordPress_Module::_weak_escape() in /home/dacelo/html/wordpress/wp-includes/wp-db.php on line 487

データベースのバックアップを取っていなかったので(よいこは必ず取りましょう)プラグインを全部停止してみると表示された。
どうやらプラグインredirectionが読んでいるメソッドが最新版では廃止されている模様。

redirectionを停止すると直りました。
ちなみにredirectionは最新の2.1.22(2009年6月更新)にすればOKです。なぜか結構前に僕が入れたバージョンは2.1.4だったのですが…?

About this blog

ここは、SE見習いである私ことdaceloが、日夜習得していくシステム関連の備忘録、phpやWordPressTipsのネタ、あるいはSEOやWebマーケティング関連の雑感を投稿するブログです。 平日は大体毎日投稿しています。土日は休業日です。

紹介

カウンター

昨日:206 今日:434 合計;112361

カレンダー

2009年11月
« 10月    
 1
2345678
9101112131415
16171819202122
23242526272829
30  

Translator

Japanese flagEnglish flagIndonesian flag
By N2H