※環境
Windows 10 1093 WSL Ubuntu 18.04
鍵
例えばEC2インスタンス作成時に受け取ったpemファイルや,ssh-keygenコマンドで生成した鍵を使う。
keygen1:雑な方法
コマンドを叩くだけ。
ssh-keygen
そうするとEnter file in which to save the key (/home/hogehoge/.ssh/id_rsa):
と聞かれるが,SSH Keysの保存先を聞かれているだけなので,Enterを入力
続いてEnter passphrase (empty for no passphrase):
と言われるが,なくても作れる(そして秘密鍵が盗まれないかぎり安全)のでEnterを入力する。
最低限のセキュリティをもった2048bit RSAの鍵はこれで作れる。
keygen2:丁寧に作る方法
ちょっとオプションを足してコマンドを叩き
# 4096bit RSA鍵 ssh-keygen -t rsa -b 4096
# 521bit ECDSA鍵(15360bit RSA鍵に相当するらしい) ssh-keygen -t ecdsa -b 521
ちゃんとパスフレーズを設定する(秘密鍵が盗まれてもパスフレーズがわからないと使えないのでより安全)
というのがセキュリティ的には望ましいらしい。
参考
.ssh/configの書き方
.sshディレクトリ
ディレクトリがなければ作成し,
mkdir ~/.ssh chmod 700 .ssh
sshディレクトリのパーミッションは700(管理者にのみ全権付与)にする。
configファイル
ファイルがなければ作成する
touch ~/.ssh/config chmod 600 ~/.ssh/config
権限を管理者に限定しないと,以下のようなエラーが出る
Bad owner or permissions on /home/fuga/.ssh/config
configには次のような記法で書き込む。
Host hoge_server HostName hogehoge.com User fugafuga IdentityFile ~/.ssh/hoge.pem Port 22
接続
configに記載したHostの名前で指定する
ssh hoge_server
パーミッション関連のエラー
このとき,鍵ファイルのパーミッションが適切に設定されていない場合,次のようなエラーが出る
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0666 for '/home/fugafuga/.ssh/hogehoge.pem' are too open.
Are you sure ? を省略する
また,初回接続時に
Are you sure you want to continue connecting (yes/no)?
と聞かれるが,VS Codeのremote developmentなどではこれが出ると邪魔くさいので
.ssh/config
にStrictHostKeyChecking no
を追記すればこれを省略できる。
Host hogehoge ... StrictHostKeyChecking no