SSHクライアントとして使う

Esshはsshコマンドのラッパーとして実装されています。つまりEsshはsshと同じように使うことができます。sshコマンドの代わりにEsshを使ってリモートサーバに接続してみましょう。

カレントディレクトリに.esshconfig.luaを作成します。これはEsshのデフォルト設定ファイルです。設定はLuaプログラミング言語で書かれています。このファイルを次のように編集します。

HostNameUserなどのパラメータは自分の環境に合わせて置き換えてください。

host "web01.localhost" {
    ForwardAgent = "yes",
    HostName = "192.168.0.11",
    Port = "22",
    User = "kohkimakimoto",
}

host "web02.localhost" {
    ForwardAgent = "yes",
    HostName = "192.168.0.12",
    Port = "22",
    User = "kohkimakimoto",
}

この設定はesshを実行するたびに/tmp/essh.ssh_config.260398422のような一時ファイルに以下のssh_configを自動的に生成します。

Host web01.localhost
    ForwardAgent yes
    HostName 192.168.0.11
    Port 22
    User kohkimakimoto

Host web02.localhost
    ForwardAgent yes
    HostName 192.168.0.12
    Port 22
    User kohkimakimoto

Esshはデフォルトでこの生成された設定ファイルを使用します。以下のコマンドを実行すると、

$ essh web01.localhost

Esshは内部的に次のようなsshコマンドを実行します。

$ ssh -F /tmp/essh.ssh_config.260398422 web01.localhost

このようにしてLua設定を使用してsshサーバに接続することができます。生成されるssh_configを確認したいのなら、--printオプションを使ってください。

$ essh --print
Host web01.localhost
    ForwardAgent yes
    HostName 192.168.0.11
    Port 22
    User kohkimakimoto

Host web02.localhost
    ForwardAgent yes
    HostName 192.168.0.12
    Port 22
    User kohkimakimoto

プロセスが終了すると、Esshは自動的に一時ファイルを削除します。したがって、通常の操作で実際のssh設定を意識する必要はありません。

Esshの設定ファイルは ~/.essh/config.luaに置くこともできます。これは ~/.ssh/configのようなユーザごとの設定ファイルです。

設定ファイルについての詳細は設定ファイルセクションを参照してください。

次のセクションに進みましょう: Zsh補完