SSHその3 ssh の設定を保存 (.ssh/config)
SSHの記事その3です。ここまでの流れは以下の記事を参照してください。
「その2」の記事で、 .ssh/config
に以下を記入することでサーバ間のssh, scpをする際に秘密鍵、パスワードの入力が不要になると述べました。
ForwardAgent yes
.ssh/
は秘密鍵など、sshのためのファイルが格納されている場所です。ここにconfig
という名前のファイルを作成すると、その中に記載されている設定がデフォルトで適用されるようになり、sshコマンドを打つ時にオプションを指定する必要がなくなります。
以下では .ssh/config
ファイルの利用例を紹介します。
接続切れを防ぐ
ServerAliveInterval 100
sshはサーバから応答がないと自動で接続が切れてしまいますが、このように記載しておくと接続が切れるまでの時間を延ばすことができます。
参考:ssh接続が自動切断される場合の回避方法 - セキュリティ
接続先でXウィンドウを使う
接続先のサーバでGUI(ブラウザなど)を起動したい場合は通常sshに -X
オプションを追加しますが、configに以下のように記載することでオプションの指定が不要になります。
X11Forwarding yes
参考:X11 forwarding — 京大マイコンクラブ (KMC)
秘密鍵の場所を指定
秘密鍵がデフォルトのパス( ~/.ssh/id_rsa
など)でない場所にある場合、configに以下のように記載することで秘密鍵の場所を指定することができます。
IdentityFile <PATH_to_id_rsa>
サーバに接続するポートを指定
サーバに接続する際の設定をサーバ別に指定することもできます。以下はserver_a
という名前のサーバに接続する時にデフォルトのポートを12345にするという設定です。
Host server_a User <ユーザ名> Hostname server_a Port 12345 IdentityFile <PATH_to_id_rsa>
IdentityFile を指定することで、「このサーバに接続する時のみこの秘密鍵を使う」などのような指定方法も可能です。
多段sshログイン
サーバが複数台あり、特定のサーバ(ここではserver_humidai
とします)を踏み台としてその他のサーバ(ここではserver_a
とします)に接続する場合、ローカルPC→server_humidai
→server_a
とsshしなければなりません。scpなどを使う時は面倒ですね。
ここでconfigに以下のように記載すると、直接 ssh server_a
とすることでログイン可能になります。(ForwardAgent yes
によって公開鍵パスワードの入力を省略しています)
ForwardAgent yes Host server_humidai User <ユーザ名> Hostname server_humidai Host server_a User <ユーザ名> Hostname server_a ProxyCommand ssh -W %h:%p server_humidai
まとめ
sshは毎日のように使うコマンドですので、configにできる限り設定を書いておいてコマンド実行を楽にするのがよいと思います。自分なりのconfigファイルをぜひ作成してみてください。