SSHの設定はなかなか理解が難しく手強いのですが、何もしないでいると、いつも忘れて後戻りをすることになるため、私なりに整理してみました。
確認したOSとバージョン
Windows 10 Pro 1903(OSビルド 18362.752)
どういう場合に使えるか
- パスワードなしでSSH認証をしたい ですとか、
- GitHubとかBitbucketにSSH認証で接続したい
というときのために使えます。
手順
秘密鍵と公開鍵の作成と公開鍵の共有
以下が必要となります。
- 秘密鍵と公開鍵をsshやgitコマンド実行クライアント側に作成
- 公開鍵をsshやgitサーバへ登録
公開鍵は暗号化するための鍵であり、誰でも暗号化できるよう公開しますが、復号は秘密鍵を持つ人だけができるようになっています。(公開鍵方式)
mkdir ~/.ssh # すでにこのディレクトリがある場合は不要
cd ~/.ssh
ssh-keygen -f <secret_keyfile>
chmod 600 <secret_keyfile>
cat > ~/.ssh/config <<-!
Host bitbucket.org
HostName bitbucket.org
Port 22
User <username>
IdentityFile ~/.ssh/<secret_keyfile>
TCPKeepAlive yes
IdentitiesOnly yes
!
下記の指定だけが要注意かと思います。
Port … ポート番号(SSHでのデフォルトは22)
TCPKeepAlive … 接続状態を継続するかどうか
IdentitiesOnly … IdentityFileの要不要
cat id_rsa_pasopet.pub
または、
cat id_rsa_pasopet.pub | xclip # Linux(ubuntuなど)
または、
cat id_rsa_pasopet.pub | pbcopy # Macな方またはWindows+Msys2など
Windows+MSYS2でpbcopyみたいのを定義するには、以下をご参照のこと。
以上で秘密鍵、共有鍵が~/.sshディレクトリに生成され、
クリップボードに共有鍵がコピーされたので、
sshやgitサーバ、GitHub、Bitbucketなどに登録します。
gitサーバの場合
この場合はをscpでコピーするほうが良いかもしれませんが、記事の流れ上、クリップボードから反映するものとしています。
cd ~/.ssh
vi authorized_keys
最終行にペーストして :wq で更新終了
chmod 600 authorized_keys # セキュリティのため
GitHub、Bitbucketなどの場合
各サイトにログインし、設定の欄にSSH鍵を設定するところがあるため、そこにペーストして設定します。
以下はBitbucketの例です。
接続確認
ssh bitbucket.org
gitの場合は、いっそ、以下のようにcloneしてしまいましょうか
git clone ssh://git@bitbucket.org:teamsinspace/documentation-tests.git
今回も勝利!
コメント