Follow

思うところあり、 の鍵をほぼほぼ総取り替えした。具体的には、すべてED25519の鍵にするとともに、SSH鍵のコメントを"${USER}@$(hostname -s)#${SHORT_USAGE}"形式にした。
そして、"${SHORT_USAGE}"・"${SHORT_USAGE}.pub"に対応する設定ファイル"${SHORT_USAGE}.config"を用意して、鍵固有の設定をすべてそこに入れた。

· · Web · 1 · 0 · 1

なんでこのようなことをしたか(=思うところは何か)というと。

1. ~/.ssh/google_compute_engine*をED25519にしたいと思った。
2. では他の鍵は~/.ssh/id_ed25519*でいいのか?と思った。
3. 鍵を用途別に分けようと思い立った。
4. どのアカウントで・どのホストで・どこに接続する目的で作ったかが、SSH鍵のコメントをみるだけで分かるようにしたかった。

というわけで、
- ~/.ssh/google_compute_engine→Google Compute Engine(VM)用
- ~/.ssh/github→Github用
みたいな感じで鍵が出来上がり、鍵のコメントは"h12o@MacBook-******"・"h12o@MacBook-******"みたいな感じになった。

これは、SSH鍵の指紋と組み合わせて、
```
h12o@MacBook-****** .ssh % ssh-keygen -l -E md5 -f github.pub
256 MD5:28:df:5e:67:ae:e2:c5:ab:aa:b9:7b:f8:5a:0b:da:75 h12o@MacBook-****** (ED25519)
h12o@MacBook-****** .ssh %
```
「h12o@MacBook-****** (ED25519)」というタイトルにしてGithubに登録するなども考慮したもの。

~/.ssh/configはこんな感じ。Includeを使うとともに最小限の設定だけをしている。

```config:~/.ssh/config
Include ~/.ssh/*.config

Host *
AddKeysToAgent=yes
ForwardAgent=yes
UseKeychain=yes
```

~/.ssh/github.configはこんな感じ。

```config:~/.ssh/github.config
Host github.com
HostName=github.com
IdentityFile=~/.ssh/github
UserKnownHostsFile=~/.ssh/github_known_hosts
```

なお、Hostだけはキーバリューを空白で、インデントしているところは"="でつないでいる。

ところがgcloud compute config-sshが生成するconfigが奇妙で…

```config:google_compute_engine.config
Host vm-x.us-central1-a.project-a
HostName 192.0.2.1
IdentityFile /Users/h12o/.ssh/google_compute_engine
UserKnownHostsFile=/Users/h12o/.ssh/google_compute_known_hosts
HostKeyAlias=compute.XXXXXXXXXXXXXXXXXXX
IdentitiesOnly=yes
CheckHostIP=no
```
空白と"="が入り混じっていたり、~/ではなくフルパスを使っていたりする。
あと鍵がgoogle_compute_engineなのに、known_hostsが
google_compute_engine_known_hostsではなく
google_compute_known_hosts
になっている。謎。

ところで、「SSH鍵のコメントを"${USER}@$(hostname -s)#${SHORT_USAGE}"形式にした」と書いたが、
SHORT_USAGEはgoogle_compute_engineやgithubとしている。
オンプレミスないしクラウドではないVPSはホスト名を、IaaSではサービス名を使って、[a-z0-9_]{1,}で表現している。
AWSは(実は)知らないので別の何かがあればアレなんだけどamazon_ec2ないしamazon_elastic_compute_cloudだとか、さくらだったらsakura_cloudかなとか、厳密ではないがだいたいそんな感じ。

あとは
bitbucket
conoha
digitalocean
github_enterprise
あたりかな、使いそうなのは。

Sign in to participate in the conversation
BlessedGeeks.Org

@h12oのおひとりさまMastodon、Google Cloud Platformで運用