はじめに
新しい案件に参画する際に、SSH関連の設定を行うが、よく忘れるため自身のメモとして以下内容を記載する。
- SSH接続とは
- 公開鍵と秘密鍵の作成
- SSH接続に利用するコマンド
- ~/.ssh/配下のファイルの内容
SSH接続とは
- リモートコンピュータと通信を行うためのプロトコル
- ネットワーク中でやり取りするデータが暗号化されるため安全
- パスワード認証と公開鍵認証がある
公開鍵と秘密鍵の作成
$ ssh-keygen
# パスワードを未設定にすると、以降の接続でパスワードの入力が不要
# もし~/.ssh/が存在しない場合は以下で作成しておく
$ mkdir ~/.ssh/
$ chmod ~/.ssh/ 700
$ touch ~/.ssh/config
SSH接続に利用するコマンド
基本は以下オプションを含めたsshコマンドを利用することが多い。
※ ~/.ssh/id_rsa
のパーミッションは600にする必要がある。
※ chmod 600 ~/.ssh/id_rsa
$ ssh -i ~/.ssh/id_rsa apache@11.111.111.11 -p 22
# -i:秘密鍵の指定
# ~/.ssh/id_rsa:秘密鍵
# apache:ユーザ名
# 11.111.111.11:接続先のホスト名
# -p:ポート番号を指定
# 22:利用するポート番号
しかし、ssh接続をする機会が1日に複数回あるため、正直面倒である。そこで、後述する~/.ssh/config
に接続情報などの情報を記述することで、上記sshコマンドの内容を省略することが出来る。
~/.ssh/config
Host dev
HostName 11.111.111.11
Port 22
User apache
IdentityFile ~/.ssh/id_rsa
~/.ssh/config
を記述した場合のsshコマンドは以下の通り。
$ ssh dev
~/.ssh/配下のファイルの内容
- id_rsa
-
ssh-keygen
で生成された秘密鍵
-
- id_rsa.pub
-
ssh-keygen
で生成された公開鍵
-
- config
- SSH接続の情報を記述するためのファイル
- known_host
- 今まで接続したサーバの情報が書き込まれる