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については、あまり詳しく知らないのでぼろが出まくる前に、これが原因でしたよーっとだけ言っておきます。
やっぱこのあたりの分野は苦手かもしれない(致命傷)