プロが教える店舗&オフィスのセキュリティ対策術

仕事でLinuxを使用しているものです。
この前どうしてもAのPCからBのPCへ「sshコマンド」での接続ができなかったので、よくよく確認してみるとAのPCのホスト名と[/etc/hosts/]の「localhost . localdomain」のところの名前が違ってました。(詳しくはBのホスト名になっていたのです)
結局「localhost . localdomain」を編集し、『ssh-keygen』のコマンドを使用して鍵の対を削除してやるとAからBへ接続することができるようになったのですが、ホスト名と「localhost . localdomain」の名前が異なることなんてよくあるのでしょうか?

このPCの設定をやった方はもう今いないので本人に聞くことはできない状態です。

すみませんが、どなたかアドバイス等よろしくお願いします。

A 回答 (2件)

いろいろあるのですが・・・



まず名前解決について、/etc/nsswitch.confファイルに書かれているhostsという項目の順に解決します。fedora系だと恐らく次のように書かれていると思います。
hosts: files dns myhostname

簡単に言えば、/etc/hostsに書いてあればそれを優先、なければDNSを参照し、それでもなければ自ホスト名があればワンチャンそれ、という順番です。/etc/hostsファイルの中身は、周辺システムがどのようなホスト名を使っていようとも、好きなように書くことができます。AのPCのhostsファイルに、BのPCのIPアドレスのホスト名は「hoge.hoge.hoge」と書いてあれば、BのPCの実際のホスト名が何であれ、AのPC的にはhoge.hoge.hogeがBのPCということになります。

次に、sshサーバのホスト鍵については、~/.ssh/known_hostsファイルに格納されていますが、これはsshコマンド等(scpとかも同様)で接続を要求したホスト名ごとに、接続したタイミングで作成されます。

仮に、/etc/hostsを書き換えてhoge.hoge.hogeのIPアドレスを別物に変更した場合、以前ssh接続したhoge.hoge.hogeのホスト鍵は違う(別のサーバなので)ものになるため、ミスマッチが起きます。こういった場合は、known_hostsファイルから該当ホスト名の行を削除するか、特に困らなければそのファイル自体を削除してしまうことで接続できるようになります。これは特に、実験的な運用でhostsファイルやDNSのホスト名を変更したりする場合にはよくありがちなことです。
    • good
    • 0
この回答へのお礼

私の分かりにくい質問に丁寧に答えてくださりありがとうございました。
今は毎日仕事に行くわけではないので、次行った際に色々と確認してみます。

お礼日時:2022/06/21 19:18

私はどうもご質問の内容を理解できないでいるかも知れないですが、感じたことをご連絡します。

方向違いでしたらどうぞお許しください。

ご質問者様は...
●パソコン"A"から"B"へsshログインできなかった。
●調べたところ『AのPCのホスト名と[/etc/hosts/]の「localhost . localdomain」のところの名前が違って』いたのに気づいた。
●つまりこのパソコンのホスト名は"A"なのに、/etc/hostsには...
     [IPアドレス] C . localdomain (Cがホスト名)
などと設定されていた。
...そこでご質問者様はこの部分を"C"から"A"に自分で書き換えた。と私は理解しました。

通常、通信"相手"をホスト名で指定するために、最も簡単な"/etc/hosts"を編集することはよく行います。しかしながら自分自身(つまり今の場合パソコン"A"です)のホスト名を変更するのは"/etc/hosts"(だけ)ではありません。
例えば「fedora ホスト名変更」をキーワードにweb検索すると...

http://yutok2c.blog136.fc2.com/blog-entry-45.html
https://www.tempest.jp/linux/fedora/documents/te …
https://pcknowhow.seesaa.net/article/116147726.h …

などのように、変更手順の中に"/etc/hosts"の『中身を書き換えろ』とは出てきません。上の手順で自動的に/etc/hostsが書き換えられるのか、私には判りませんが、少なくともご質問者様がssh失敗に気づいた時点では、コンピュータのホスト名の設定は正しくはなかったと思われます。そもそも設定間違いなのですから「...名前が異なるなんて...」は本来あってはならない事と思います。
そしてご質問者様が「手で/etc/hostsファイルを編集して問題に対処した。」行為も、果たして正しかったのかどうか少し疑問に思います。

さて、そこでです。私が自分でやらずご質問者様に要求するのも失礼だと思うのですが、このままfedoraのエキスパートが適切な回答をしてくれない場合、ご質問者様ご自身で正しいホスト名変更を実行してみたら如何でしょうか。例えばホスト名を"A"から"E"へ、さらに"E"から"A"へです。
もしかしたら自動的に/etc/hostsは書き換わるかも知れません。それならば前任者の瑕疵と断定できます。
書き換わらないのなら『/etc/hostsは結局手で修正しなくちゃ。』となり、ご質問者様の先日の作業は正しかったことになります。
    • good
    • 0
この回答へのお礼

私の分かりにくい質問に丁寧に答えてくださりありがとうございます。
今は毎日仕事に行くわけではないので、次に行った際に色々と確認して試してみようと思います。

お礼日時:2022/06/21 19:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!