20
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

~/.ssh/configからSSH先のホストをfzfで選んで接続する

Last updated at Posted at 2018-11-15

fzfを活用してTerminalの作業効率を高める
https://qiita.com/kamykn/items/aa9920f07487559c0c7e

に引き続き、またまたfzfネタです:laughing:

インストール

fzfについては上記の記事でも詳しく書いていますが、あいまい検索と選択的インターフェースを融合させたCLIツールです。
fzfはMacならbrewでもinstallできます。

brew install fzf

SSHのホスト先をfzfで選ぶには

仕事で入るサーバーが増えてくると毎回コマンド履歴を探したり、~/.ssh/configを見に行って探したりなど面倒ですよね。

そこでfzfの力で、その場で~/.ssh/configの内容からssh先を選んでそのまま接続してみます。

fssh() {
    local sshLoginHost
    sshLoginHost=`cat ~/.ssh/config | grep -i ^host | awk '{print $2}' | fzf`

    if [ "$sshLoginHost" = "" ]; then
        # ex) Ctrl-C.
        return 1
    fi

    ssh ${sshLoginHost}
}

これを.bashrcや.zshrcに書きます。

結果

fsshというコマンドで~/.ssh/configの内容からHostの項目を選んでSSHできるようになります。

2018-11-16 00-06-34.2018-11-16 00_08_36.gif

サンプルなのでgifには実際にSSH先に入ってる様子までは含めていませんが(手元に適当な環境がなく...)、最終的に ssh [Hostの設定名]というコマンドが実行され、SSHすることが可能になります。

おまけ

SSHするときにオペミス防止の為にTerminal.appの背景色を変える必要があったので、このコマンドでついでに変えてみます。(MacのTerminal.app想定)
下記を、先程の記述の中のssh コマンドの直前に書き加えます。

## Terminal.appのprofile変更
osascript -e 'tell application "Terminal" to set current settings of first window to settings set "green"'

"green"の箇所はお使いのMacのTerminal.appのプロファイルで使っている名前を当てはめてください。
↓↓↓ (こんなやつ)

スクリーンショット 2018-11-16 0.31.50.png

これで、背景色がSSHついでに緑色に変更することができました:relaxed:
(なお、iTermではこの記述では効かないのでご注意を。)

(↓↓↓またしても接続先に入るところが含まれていないgif)
2018-11-16 00-41-38.2018-11-16 00_42_03.gif

20
19
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
20
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?