概要
SSH接続するとき、鍵ファイルやホスト名などの長いパラメータを毎回入力しなくていい方法。
対象者
- macでターミナルを使っている
- ターミナルでファイルの操作が行える
- テキストエディタを使える
- シェルはzsh(最近のmacデフォルトはzsh:2022年時点)
- SSH接続をよく使っている
関連記事
目次
普通のssh接続
sshのパラメータはこんな感じなので
ssh -i 鍵ファイル ユーザー名@ホスト名
普段、次のように入力していると思います。
ssh -i =/keys/hoge-key.pem hoge-user@hoge-server
SSHをよく使ってると面倒になりますよね。
configファイルを使ったssh接続
後述する設定ファイルを用意しておくと、こんな感じで接続できるようになります。
ssh hoge
configファイルを使うメリット
- 入力が楽になる
- 鍵ファイルやホスト名以外のパラメータも指定できる
- 入力補完が使えるようになる(zshの設定が必要)
- sftp、rsyncでも使える
configファイルの用意
ホームディレクトリに.sshディレクトリを作る
mkdir -p ~/.ssh
configファイルを作成する
vi ~/.ssh/config
configファイルの書き方はこんな感じ
Host 接続名
HostName ホスト名やIPアドレス
User ユーザー名
IdentityFile 鍵ファイルへのパス
SSHで接続がこうだったら
ssh -i ~/keys/hoge-key.pem hoge-user@hoge-server
configファイルの内容はこのように書きます。
Host hoge
HostName hoge-server
User hoge-user
IdentityFile ~/keys/hoge-key.pem
configファイルの設定で接続する(Host行に記載した名前を指定する)
ssh hoge
これで接続できるようになります。
さらに便利に
複数の接続先や、共通設定なども書けます。
# 共通設定
Host *
ServerAliveInterval 60
# コメント
Host hoge
HostName hoge-server
User hoge-user
IdentityFile ~/keys/hoge-key.pem
# コメント
Host fuga
HostName fuga-server
User fuga-user
IdentityFile ~/keys/fuga-key.pem
ssh hoge
ssh fuga
接続先の入力補完について
zshの入力補完機能を有効にすると接続先を補完してくれるようになります。
ssh h
と入力しておいて、「tabキー」を押すと
ssh hoge
と補完されます。
zshの補完機能を有効にするには、ホームディレクトリに.zshrcファイル作ります。
vi ~/.zshrc
autoload -U compinit
compinit
ターミナルを入り直すか、次のコマンドで読み込むと補完が有効になります。
source ~/.zshrc