sshの設定をホスト名prefixで分ける

Pocket

一時期、「最強のSSH踏み台設定」という記事が話題になりました。.ssh/configのHost設定でスラッシュを区切り文字とすることで、動的な踏み段設定ができるというものです。

この手法を応用して、基本的にProxyCommandが必要な環境下で動的に変わるIP相手に対し、アドレスにprefixを付けることで常にあるProxyCommandを実行させるような設定を行ってみました。


Host aws-u_*
  User ubuntu
  IdentityFile /path/to/key.pem
  ProxyCommand socat - PROXY:proxy.host.name:$(echo %h|cut -f 2 -d _):%p,proxyport=8080

ssh aws-u_xxx.yyy.zzz.wwwとすれば常に特定のユーザー、鍵、Proxy経由で接続するようになります。区切り文字にアンダースコアを使っているのは、スラッシュを使った場合にscpでホスト名と判断されない場合があったからです。ssh, sftpコマンドではスラッシュでも特に問題ありません。

By knok

I am a Debian Developer and a board member of Free Software Initiative (FSIJ).