ベスパリブ

プログラミングを主とした日記・備忘録です。ベスパ持ってないです。

WindowsのSSHの設定、備忘録

SSH鍵の保管場所は?

C:/Users/XXXXX/.ssh/

SSHコマンド

SSH-KEYGEN (1)

RSA鍵の生成

# RSA1024ビット
> ssh-keygen -t rsa -b 1024
# RSA2048ビット
> ssh-keygen -t rsa -b 2048
# RSA4096ビット
> ssh-keygen -t rsa -b 4096

ED25519鍵の生成

> ssh-keygen -t ed25519

GitHubでEd25519鍵をつかう - 尋常でないもふもふ

コメント付きの鍵生成

> ssh-keygen -t ed25519 -C "コメント。メールアドレスを入れることが多い"

バージョン確認

> ssh -V

SSH鍵をどう管理する?

サーバが多くSSH鍵の管理が大変です。どんな工夫をしていますか? - Qiita

SSH鍵は使いまわすこともできるし、サービスごとにSSH鍵を分けてもよい。

f:id:takeg:20190122174843p:plain
.sshフォルダ

たとえば.ssh/configファイルは次のようにして、サービスごとのSSH鍵はそのフォルダのconfigに従うようにする。

Host *
  IgnoreUnknown UseKeychain
  UseKeychain yes

Include */config

IgnoreUnknown UseKeychainは、Bitbucketに接続しようとしたらBad configuration option: usekeychainというエラーが出たのでそのエラーを解消をするために追加している。詳しくは以下のStack Overflowを参照。

macos - .ssh/config: "Bad configuration option: UseKeychain" on Mac OS Sierra 10.12.6 - Stack Overflow

そして、.ssh/githubフォルダを以下のような構成にする。

f:id:takeg:20190122175848p:plain
.ssh/githubフォルダ

たとえば.ssh/github/configファイルは次のようにして、専用のSSH鍵を使うように指示する。

Host github github.com
  HostName github.com
  User tanaka_taro
  IdentityFile ~/.ssh/github/id_ed25519

同様に、たとえば.ssh/bitbucket/configファイルは次のようにして、専用のSSH鍵を使うように指示する。

Host bitbucket bitbucket.org
  HostName bitbucket.org
  User tanaka_taro
  IdentityFile ~/.ssh/bitbucket/id_ed25519
  Port 22

設定できる項目は以下の通り。

.ssh/configファイルでSSH接続を管理する - Qiita

設定項目 説明
Host ホスト名
HostName ホストのアドレスかIPアドレス
User ログインユーザ名
IdentiyFile ログインするための秘密鍵パス
Port ポート番号(デフォルト22)
TCPKeepAlive 接続状態を継続したい場合:yes / 継続しない場合:no
IdentitiesOnly IdentityFileが必要な場合:yes / 必要ない場合:no
ServerAliveInterval 一定期間サーバからデータが送られてこないとき、タイムアウトする秒数