サーバーにssh接続するときは「root@123.45.67.890」のようにサーバーのユーザー名とIPアドレスを指定する必要があります。これを毎回入力するのはとても面倒ですよね?
そんなときは、サーバーにホスト名を設定することで、設定したホスト名で簡単にssh接続ができるようにすることができます!
というわけで今回は、
- ホスト名を設定し、IPアドレスを省略してssh接続する方法
- ホスト名をタブキーで入力補完する設定方法
の2つの設定方法を紹介します!
# これを
$ ssh root@123.45.67.890
# こうする
$ ssh site1
ssh:ホスト名の設定方法
「~/.ssh/config」に下記を追記するだけでOKです!
(パスは環境によって異なる場合があります。.ssh/以下のconfigファイルです。)
Host <接続したい名前(例:hoge)>
Hostname <IPアドレスorドメイン>
User <ログインユーザー名>
configはssh接続の設定ファイルです。
ここで設定したHost名を指定するだけで、ssh接続ができるようになります。
(例の場合「ssh hoge」)
また上記以外にもポート番号の設定や、秘密鍵ファイルを指定することができますよ!
Host | 任意の接続名(接続するsshのエイリアス名) |
---|---|
Hostname | 接続するサーバーのIPアドレスまたはドメイン |
User | 接続するユーザー名 |
Port | 接続するポート番号 |
IdentityFile | 秘密鍵のファイルパス |
複数のホスト名を設定する場合(ファイルの書き方)
# サーバー1
Host hoge
Hostname 123.45.67.890
User root
# サーバー2
Host foo
Hostname example.com
User example
Prot 8888
# サーバー3
Host mysite
Hostname 111.22.33.4444
User root
IdentityFile ~/mysite_sever.key
#はコメントアウトです。これで、
サーバー1に接続したいなら「ssh hoge」
サーバー3に接続したいなら「ssh mysite」
でログインができます!
ホスト名をタブで入力補完する設定
補完には「bash-completion」を使用します。

設定したホスト名をtabキーで入力補完することができます。
上記の場合「ssh s + tabキー」だけで「site1」を自動入力してくれます!
bash-completionのインストール方法(Macの場合※1)
MacではHomebrew※2を使用します。
①下記コマンドでインストールが可能です。
$ brew install bash-completion
②次に、下記を「~/.bash_profile」に記述します。(読み込む設定)
# Bash completion (~/.ssh/configのサーバー名補完)
[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion
これで補完が使えるようになりました!
※1 CentOS,Debian,Ubuntu等の場合はyumやapt-getを使用します。
※2 HomebrewはMacOS用のパッケージマネージャーです。
この設定だけで高速でssh接続ができるので本当に便利です!
まだ設定していない方は絶対しておくことをおすすめします!
また「うまくいかない」「わからない」などなどありましたら、
コメントまたはとうふのTwitterまでご連絡ください!