今回は、DNSレコード登録をしていないホストにIPアドレスなしで、SSH接続を簡単にする方法として、/etc/hostsの書き方を調べてみました。
本来、DNSレコードを登録していないサーバへの接続はIPアドレスで行う必要がありますが、IPを毎回調べたり、IPを打つのがめんどくさい(自分の場合はホームポジションから手を離さないと数字を入力できない。。。)ので、今回の設定でサーバ名や好きな名前で指定のサーバにSSH接続することができます。
まず、パスワードを打たなくてもいいようにSSH公開鍵認証ができていることが前提になっていますので、設定方法については以下の記事をご覧ください。

検証環境
用意するサーバは2台です。両方OSはCentOS8.2を使用しています。(両方とも、IPアドレスは固定しています)
-
ホスト(踏み台などのメインで使用するサーバ)
-
サーバ(実際にホストから接続を行う側)
実現したいこと
今回、実現したいのは踏み台用サーバ(test.server)から、リモートサーバ(remote.server)へremoteというホスト名のみでSSH接続をさせることです。
(DNSでの名前解決は行いません。remote以外にも、remote.serverという名前でも接続できる様にします。)
1 2 3 4 |
[root@test 23:04:28 ~]# ssh remote Last login: Sat Nov 7 23:04:25 2020 from 192.168.3.100 [root@remote 23:04:30 ~]# |
/etc/hosts追記手順
全体概要
以下の順番で、検証を行います。
- test.serverの/etc/hostsにremote.serverの情報を書き込む
- /etc/hostsに書き込んだ情報を元にtest.server -> remote.serverへのSSH接続を試みる
- IP指定なしにSSH接続ができることを確認
/etc/hosts修正
まずは、SSHする側のホスト(test.server)の/etc/hostsにサーバ(remote.server)の情報を入力しましょう。
下を参考にしてください
1 2 3 4 5 6 7 |
[root@test 23:21:53 ~]# vi /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 ##以下の行を追加 192.168.3.200 remote remote.server |
基本的には、下のように記述しますが、IPアドレスとホスト名だけでもOKですし、IPアドレスとFQDNだけでも問題ありません。
入力した情報でSSH接続できるかを確認
先ほど/etc/hostsに入力したホスト名・FQDNまたは、適当に設定した名前でSSH接続ができるかを確認します。
1 2 3 |
[root@test 23:24:01 ~]# ssh remote Last login: Sat Nov 7 23:23:42 2020 from 192.168.3.100 [root@remote 23:29:02 ~]# |
できました!!!
最後に
というわけで、今回は/etc/hostsの書き方・SSH接続できるまでの紹介でした。
自宅などのDNSサーバを設置していない環境では、ホスト名でログインできないと割と不便なことが多いと思うので、是非参考にしてみてください。
開発環境をより良くしようと最近は調べているので、便利なものを見つけ次第、どんどん発信していきたいと思います。
では〜〜〜
コメント