こんにちは、こえじまです。
sshを頻繁にする人は、接続を簡単にするために~/.ssh/configを普段から書くクセをつけましょう。
今回はそのconfigファイルの書き方です。configファイルを作ることで
ssh vm1
など好きな名前でリモートPCにアクセスできるようになります。
.ssh/configの作成
まず、~/.ssh/configが無ければ作りましょう。
mkdir ~/.ssh touch ~/.ssh/config
書き方基本
基本的なパラメータは以下の4つです。
Host | sshで繋ぎたいサイトの名前 |
---|---|
Hostname | 接続先のIPアドレスまたはドメイン名 |
User | ログインユーザーネーム |
IdentityFile | 接続に用いる鍵ファイル |
AWSのEC2インスタンスにSSHする時のサンプルは以下の通りです。
### AWS ### Host ec2 Hostname ec2-00-000-000-000.ap-northeast-1.compute.amazonaws.com User ec2-user IdentityFile ~/.ssh/hogehoge.pem
これを~/.ssh/configに書いておくと
ssh ec2
でSSHログイン出来るようになります。
Hostは自由に付けられるので覚えやすい名前にしましょう。
また、#でコメントアウト出来るので適宜コメントを入れておくと可読性が上がるのでオススメです!
書き方発展
多段SSH
### mysite ### Host koejima Hostname koejima.com User koejima IdentityFile ~/.ssh/id_rsa Host remotePC HostName 10.0.0.1 User admin ProxyCommand ssh -CW %h:%p -4 koejima
今回はkoejima.comを経由して10.0.0.1にsshすることにします。こんな感じ。
remotePCのHostnameやUserはkoejima.comからsshする時の情報を入力してください。
また、ProxyCommandの一番最後(上の例だとkoejimaとなっているところ)は、踏み台となるサーバーのHostで指定している名前を入れてください。
ワイルドカード
ワイルドカード(何にでも当てはまる文字)を使用することが出来ます。sshの接続先が大量になった時、分類するのに役立ちます。
Host *-group1 User koejima IdentityFile ~/.ssh/id_rsa Host *-group2 User hoge IdentityFile ~/.ssh/hogehoge.pem Host vm1* Hostname 10.0.0.1 Host vm2* Hostname 10.0.0.2 Host vm3* Hostname 10.0.0.3 Host vm1-group1, vm1-group2, vm2-group1, vm2-group2, vm3-group1, vm3-group2
こうすることでvm1-group1、vm1-group2などそれぞれ別のユーザーでログインすることが出来るようになります。
最後に空の設定を入れているのは、ワイルドカードを使うとzshが補完をしてくれないから入れています。
補完機能を使っていないのであれば不要です。
その他おすすめの設定
Host * IdentitiesOnly yes ServerAliveInterval 120 ServerAliveCountMax 10 ForwardAgent yes IdentityFile ~/.ssh/id_rsa TCPKeepAlive yes
IdentitiesOnly | 認証の際に、ssh_config ファイルで指定された秘密鍵のみを使用するよう指定。 |
---|---|
ServerAliveInterval | 一定期間サーバからデータが送られてこないときに、タイムアウトする秒数。 |
ServerAliveCountMax | sshがサーバからの返答を確認するまでに、サーバ生存確認メッセージを何回まで送るか。 |
ForwardAgent | 認証エージェントへの接続を、リモートマシン上に転送する。 |
TCPKeepAlive | システムが相手のマシンにTCP keepaliveメッセージを送るかを指定。これが送られると、接続の異常終了や相手マシンのクラッシュが正しく通知される。 |
ServerAliveIntervalとServerAliveCountMaxはSSH接続を切れにくくするためのものです。この設定だと少なくとも20分は勝手に切れないことになります。
ForwardAgentについては分かりやすいQiitaがあったので以下参照。
ShellScript – ssh-agentの基本 – Qiita
より詳しく知りたい方はSSH_CONFIG (5)を御覧ください。
コメント
[…] config を書くことで ssh を便利で簡単にしよう! | one more step […]