Help us understand the problem. What is going on with this article?

~/.ssh/configの設定(自分用メモ)

More than 3 years have passed since last update.

概要

.ssh/config の設定内容に関する資料。

.ssh/configとは?

.ssh/configとは、ssh経由でのリモートサーバーの接続する際に利用される設定ファイルです。

記載するメリット

sshコマンドでサーバにログインする際のオプション等を省略出来る。
例えば一般的な接続コマンド↓

ssh ユーザー名@hoge.example.com

ユーザー名とホスト名を指定する方法、これはかなり単純な例なので、メリットがあまりないが、下記のようにポート番号がデフォルト(22)では無い場合、公開鍵認証で、鍵がデフォルトの名前ではなかったりした場合、コマンドが複雑になってしまう。

# ポート名を指定する場合
ssh ユーザー名@ホスト名 -p ポート番号

# 公開鍵認証の場合
ssh ユーザー名@ホスト名 -i ~/.ssh/鍵の名前

# ポート名&公開鍵認証の場合
ssh ユーザー名@ホスト名 -i ~/.ssh/鍵の名前 -p ポート番号

設定例

~/.ssh/config
Host *
ServerAliveInterval 60
    ForwardAgent yes
    ForwardX11Trusted yes
    ControlMaster auto
    ControlPath /Users/nishimoto-keita/.ssh/.connect/%r@%h:%p
    ControlPersist 10

Host sshgw
    Hostname 206.209.100.50
    User nishimoto-keita

Host stg
    HostName 206.209.142.22
    User nishimoto-keita
    ProxyCommand ssh -W %h:%p sshgw

Host aws
    HostName 50.11.14.160
    Port 22
    User ec2-user
    IdentityFile ~/.ssh/ec2_keys.pem

例えば、206.209.142.22環境にSSHを行う為には、最初に踏む台サーバの206.209.100.50を経由して接続を行う必要があるのだがこちらの設定を行っておけば以下のコマンドで接続出来る。

ssh stg

各項目毎にそれぞれ意味があるのだが、そのあたりは時間がある時にでも追記します。

keitakn
フリーランスのWeb系エンジニア、 フロントエンド、バックエンド両方やります。🐱好きです🐱
https://github.com/keitakn/cv
readyfor
想いをつなぎ、叶える未来を、つくる READYFORのOrganizationです
https://tech.readyfor.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away