LoginSignup
2
0

More than 3 years have passed since last update.

LANからでもWANからでも同じコマンドで同じマシンにsshする方法

Posted at

内容自体は拾い物

同じマシンにログインしたいのに、インターナルとグローバルのIPがそれぞれ違うと毎回コマンドを考えるのに脳みそを使ってしまうので、些細なことだけど結構煩わしい。
sshfsなどを使ってマウントしていると、場所を移すたびにunmountしてホストを修正してマウントし直しをする必要があるなど余計具体的に煩わしい。

解決策

上記stackexchangeには複数の解決策が提案されていましたが、自分はこれが一番わかりやすくスマートだと思いました。
コマンドの返り値によって使用する設定を選択できる Matchという文法の存在がいちばんの肝です
以下のように設定することで、ssh hostでどこからでも所定のマシンに接続できます

~/.ssh/config

Match host Host exec "[[ $(curl -s ipinfo.io/ip) != '12.345.67.89' ]]"
    User user
    HostName 12.345.67.89

Match host Host exec "[[ $(curl -s ipinfo.io/ip) == '12.345.67.89' ]]"
    User user
    HostName 192.168.2.7
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0