SSHクライアントとして使う
Esshはssh
コマンドのラッパーとして実装されています。つまりEsshはssh
と同じように使うことができます。ssh
コマンドの代わりにEsshを使ってリモートサーバに接続してみましょう。
カレントディレクトリに.esshconfig.lua
を作成します。これはEsshのデフォルト設定ファイルです。設定はLuaプログラミング言語で書かれています。このファイルを次のように編集します。
HostName
やUser
などのパラメータは自分の環境に合わせて置き換えてください。
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補完