カテゴリー : 2015年 12月

[ssh] Warning: the RSA host key for ‘server_name’ differs from the key for the IP address ‘xxx’ の解決方法

EC2 instance を新しくした後 /etc/hosts を編集して、hostname はそのままで ip address だけ変更して ssh したら毎回下記のような警告メッセージが表示されるようになってしまいました。

[ec2-user@hoge ~]$ ssh server_name
Warning: the RSA host key for 'server_name' differs from the key for the IP address '10.123.123.123'
Offending key for IP in /home/ec2-user/.ssh/known_hosts:232
Matching host key in /home/ec2-user/.ssh/known_hosts:46
Are you sure you want to continue connecting (yes/no)?

known_hosts に host name と ip address の古い組合せの接続情報が残っているのが原因なので Matching host key in /home/ec2-user/.ssh/known_hosts:46 のメッセージに書かれているように known_hosts の 46 行目を削除しましょう。

[ec2-user@hoge ~]$ vim .ssh/known_hosts
# 46 行目を削除する

known_hosts を編集後、再び ssh します。

[ec2-user@hoge ~]$ ssh server_name
The authenticity of host 'server_name (10.123.123.123)' can't be established.
ECDSA key fingerprint is 6b:d3:33:ab:75:ee:50:dc:f0:0a:ca:7c:7e:bd:14:8e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'server_name' (ECDSA) to the list of known hosts.

その後、切断してもう1度 ssh すると Warning メッセージが表示されなりました。

[ec2-user@hoge ~]$ ssh server_name
Last login: Thu Dec 31 00:48:26 2015 from forward_proxy1
 
       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

以上です。

Google Drive のファイルが完全削除されてしまったとき Google に復元してもらえるかもしれない?

「よく分からないけど、Google Drive のファイルが完全削除されているので、どうしたらいい?」という相談をされたので、調べてみたところ Google に問い合わせると一定期間であれば復元してもらえるようでした。

原因として有り得そうなのは、自分の PC と Google Drive を同期しているとうっかりローカル環境のファイルを削除したのではないかと思いますが、事実は不明です。

気づいたタイミングですぐに Google Apps for Work ヘルプフォーラム から問い合わせるとよさそうです。

[jQuery] カルーセルライブラリ slick.js の lazyLoad を理解する

jQuery のカルーセルライブラリ slick.js をそのまま使うと slick.js file の読み込みと .slick() method の実行が完了するまで、カルーセルのレイアウトにならず ul, li タグで囲んでいる画像が全て表示されてしまうという問題に直面しました。

jQuery

続きを読む

[Linux] 多段 ssh/scp の設定

複数のサーバを経由して ssh や scp コマンドを叩きまくるのが面倒くさいので直接 ssh/scp できる設定を .ssh/config ファイルに追加しました。

多段 ssh/scp の設定方法

設定前はローカル環境で ssh server1 した後に server1 にて ssh server2 という手順で2回 ssh していました。

# .ssh/config file
Host server2.example.com
  ProxyCommand ssh server1.example.com nc %h %p
  IdentityFile    ~/.ssh/server1_example_com.pem
  User            ec2-user

設定後は server1 を介さずに直接 ssh server2 できるようになります。

scp コマンドでのファイル転送も下記のように直接できるようになるので超便利です!

scp ~/Downloads/spam.csv server2:

複数サーバを経由して ssh や scp をする機会がある方はぜひ設定してみてください。


参考情報

Mongoose documents を JSON に変換して response を返す

Express.js + Mongoose で documents を JSON に変換して response を返すには、

UserModel.find().lean().exec(function (err, users) {
  return res.json(users)
});

というような感じで lean() オプションを付けて plain javascript object を取得した値を res.json で返せばよいです。


参考情報

ロードアベレージを理解する

load average についてちゃんと理解できてなかったので、参考になった記事をメモっておく。

naoya さんの記事にあるように 4 core の OS でのロードアベレージの見方が分かっていなかったので、こういう記事は本当にありがたい。

[Node.js] CSVTOJSON を使って CSV から JSON ファイルに変換する

CSVTOJSON という npm モジュールを利用して、CSV を JSON ファイルに変換するスニペットをご紹介します。

csvtojson をインストールする

npm install -g csvtojson

csvtojson を使って CSV から JSON ファイルへ変換する

var Converter=require("csvtojson").Converter;
var csvConverter = new Converter({
  constructResult: false,
  toArrayString: true
});
 
var pathName = "/Users/bakorer/Downloads/";
var readStream = require("fs").createReadStream(pathName + "sample.csv");
var writeStream = require("fs").createWriteStream(pathName + "sample.json");
 
readStream.pipe(csvConverter).pipe(writeStream);

以上です。

[Twitter] ツイートボタンの独自イベントを取得してクリックしたときに何か処理させる

Twitter のツイートボタンの独自イベントを取得して、ツイートボタンをクリックしたときに何か処理をさせたいときに役立つスニペットをご紹介します。

// https://dev.twitter.com/web/javascript/loading より
window.twttr = (function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0],
    t = window.twttr || {};
  if (d.getElementById(id)) return t;
  js = d.createElement(s);
  js.id = id;
  js.src = "https://platform.twitter.com/widgets.js";
  fjs.parentNode.insertBefore(js, fjs);
 
  t._e = [];
  t.ready = function(f) {
    t._e.push(f);
  };
 
  return t;
}(document, "script", "twitter-wjs"));
 
twttr.ready(function (twttr) {
  twttr.events.bind("tweet", function (event) {
    console.log('Tweet ボタンをクリックしたタイミングで呼び出したい処理');
  });
});

使い方の事例は、例えば Google Analytics のイベントトラッキング機能でツイートボタンのクリック数を計測したいとかでしょうか。


参考情報