8t's BBR

よくつまったあれこれをメモ

sshで公開鍵を登録したのにsshできない

 
 

今年もポッキーの日がきましたね。
熱いカップルさんのキスを見ないように、ひきこもるのが一番だと思います。




・・・とまぁそれはさておき、
最近、新たにHadoopクラスタを組みなおすことになりました。

そんな訳でご新規なサーバーさんと仲良くしようと自己紹介して、友達になり、さぁこれで認証なしでssh接続できるはずやから確認しようーってしたらこれ。



Temporary failure in name resolution




俺「ふぁーーーーーーー」




状況整理

新たにHadoopクラスタを組みなおすにあたって、ご新規サーバー6台とご対面。
昔の記事を参考にしながら、それぞれのマシンがお互いにパスなしでSSH接続するための設定をする。
複数の仮想マシンを互いにSSHで接続 - 8t's BBR

大雑把に言えば、
 ① 公開鍵と秘密鍵をすべてのサーバーで作る
 ② 全サーバーの公開鍵をauthorized_keysに登録(もちろん全サーバーとも)
こんだけです。



・・・こんだけなのですが、
ご新規サーバー6台のうち3台は、ご新規サーバー⇒いつも使っているサーバー(以下ホスト)にsshしようとしても
Temporary failure in name resolution
っていうエラーがでる。

逆は大丈夫でした。また、ご新規さん同士は問題なくsshできる。



原因については後回しにして、とりあえず解決策を


解決策① /etc/hostsに接続できないサーバーを追加する

ムリヤリ感のある方法ですが、これが一番手っ取り早いかもしれません。
ホストにsshできないサーバーの/etc/hostsをいじります

sudo vim /etc/hosts

とでもしてやって、最後の方に

[ホストのIPアドレス] [ホスト名]

で追加するだけ


解決策② DNSサーバーを設定する

今後、他にサーバーを追加しないなら解決策①で問題ないけど、
そうでもないならこちらの方がいいかも

具体的には、/etc/resolv.confをいじります。
/etc/resolv.confとはなんぞやって人は以下を参照。
Linux初心者の基礎知識 - /etc/resolv.conf -

うまくいってなかったサーバーたちはこの中のnameserverが設定されていなかった。
最低でも、このnamesererをきちんと設定していれば大丈夫っぽい?けど、

 nameserver ネームサーバのIPアドレス
 domain     ドメイン名
 search     検索リスト

を設定しておけば、無事解決しました。

問題のあるサーバーのnameserverがわかりませんって人はお偉いさんに聞くか、解決策①を使ってください。



結局、原因は?

解決策②でも少し触れましたが、どうやらnameserverの設定がされていなかったからのようです。
failure in name resolution
って言われても仕方ないです。
DNSについては、あまり詳しく知らないのでぼろが出まくる前に、これが原因でしたよーっとだけ言っておきます。


やっぱこのあたりの分野は苦手かもしれない(致命傷)