SSHの鍵の設定を行ってパスワードなし認証やGitHub・Bitbucketに接続する

iceburg その他の戦い

SSHの設定はなかなか理解が難しく手強いのですが、何もしないでいると、いつも忘れて後戻りをすることになるため、私なりに整理してみました。

スポンサーリンク

確認したOSとバージョン

Windows 10 Pro 1903(OSビルド 18362.752)

MSYS2で実行したので、Linuxでもほとんどそのままの手順で行えます!

どういう場合に使えるか

  • パスワードなしで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

今回も勝利!

0

コメント

タイトルとURLをコピーしました