SSHについて

前の現場で携わってた時の業務内容について
お話をします。
SSHの鍵交換という作業をやっておりました。

SSHとは

ネットワークを経由して他のコンピュータ(主にサーバ)に接続し、遠隔操作するための仕組みです。通信途中の情報は全部暗号化されます。telnetと比較すると暗号化されないのでSSHの方が安全です。

Telnetの強化版と言いましょうか。
簡単にtelnetの説明をすると、ほかのコンピュータを遠隔操作するための仕組みです。

私がやっていた作業をざっくり説明すると、お客様から「AサーバとBサーバをSSHで鍵交換したいから設定してください」という依頼がきます。
その依頼を受けて、Aサーバ側の鍵を作成して、Bサーバにその鍵を配置してあげ、指定のファイルに鍵情報を記載して、疎通確認をします。

以前の現場でも他の現場でも必ずといっていいほど出てくるエラーがありますので、一つ教えます。

以下、SSHでAサーバからBサーバに繋いだ時のエラーです。

$ ssh example.com
@@@@@@@@@@@@@@@@@@
@ 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 a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
:::::::::::::::.
Please contact your system administrator.
Add correct host key in /Users/hnw/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/hnw/.ssh/known_hosts:133
RSA host key for example.com has changed and you have requested strict checking.
Host key verification failed.

このエラーが出たら、サーバ側のホスト鍵が古いんだなと思ってください。

説明すると、AサーバからBサーバに初めて接続する際に
「ホスト鍵を登録しますか?しませんか?」と聞かれます。そこでyesと入力すればAサーバにBサーバのホスト鍵情報が、known_hostsファイルというものに保存され接続が可能となります。

上記のエラーは、Bサーバを作り直したり、OS再インストール等をすると、ホスト鍵が作り直されます。
サーバ構築の現場だと、サーバの作り直し等
頻繁にあるのでお気をつけください。

このエラーを直すには、Aサーバ側のknown_hostsファイルに記載されているBサーバのホスト鍵情報を削除してあげればよいです。
当然ですが、削除する際にはknown_hostsのバックアップは取ってください。
known_hostsには、別サーバのホスト鍵情報もあるので誤って削除することもあります。
いつでも古いものに戻せるようにしておく必要があります。

削除後、再度接続をすると初めて接続する際の「ホスト鍵を登録しますか?しませんか?」が表示されるので、yesと入力すれば新しいBサーバのホスト鍵情報が登録され接続可能となります。
Bサーバ側に置いたAサーバ側の鍵もあるか確認する必要があります。

今回伝えたエラーは、どこの現場でも出ますので、覚えておくと結構助かります。
SSHの鍵交換について詳しく知りたい場合は、ググれば沢山でてくるので調べてみてください。

この記事を書いた人

アバター

yamagami

山神と申します。

日々勉強、日々精進、日々向上

もう人生に疲れたの…