SSHキー

From mediawiki.org
This page is a translated version of the page SSH keys and the translation is 68% complete.

SSH鍵はGerrit およびGitLab サーバーにログインしてコードをプッシュするために必須です。

新しいSSH鍵を生成する

/.sshの中に既にあるのでなければ、以下の案内に従って作成してください。 新しい鍵を生成する必要があるかどうか確かめるために、あなたのシステムにSSH鍵が既に存在するのかを確認しましょう。 ターミナルでこのコマンドを実行してください:

ls ~/.ssh

このコマンドにより(隠されている).sshディレクトリ内にあるファイルが一覧されます。 もしそのディレクトリがあなたのシステムに既に存在して、id_ed25519.pubというファイルが一覧に出力されているならば、そのまま#SSH公開鍵をコピーするに進むことができます。

新しいSSH鍵を生成するには、ターミナルを開いて、以下のコマンドのuser@example.comを自分自身のメールアドレスに置き換えたものを入力します。 我々はデフォルト設定にしてほしいので、鍵を保存するファイルを入力するように求められたら、単に↵ Enterを押してください。

ssh-keygen -t ed25519 -C "user@example.com"

Enter a strong and unique passphrase and press the ↵ Enter key.

Why do passphrases matter?
Passwords aren’t very secure. If you use one that’s easy to remember, it’s easier to guess or brute-force. If you use one that’s random it’s hard to remember, so you might write the password down. Both are very bad. This is why you’re using ssh keys. But using an ssh key without a passphrase is basically the same as writing down that random password in a file on your computer. Anyone who gains access to your drive has gained access to every system you use that key with. That's why you also add a passphrase. To not enter a long passphrase every time you use the key, there’s a tool called ssh-agent. It can save your passphrase securely. If you use macOS or Linux, then your keys can be saved in the system’s keychain to make your life even easier.

ssh-keygenコマンドは~/.sshディレクトリの中に2つのファイルを作成します:

  • ~/.ssh/id_ed25519 - your private SSH key (for identification)
  • ~/.ssh/id_ed25519.pub - your public SSH key

SSH公開鍵をコピーする

公開鍵ファイル(例えばid_ed25519.pub)の内容を手に入れて、クリップボードにコピーします:

選択肢のひとつは、公開鍵ファイルを好きなテキストエディタ(Notepad、TextEdit、geditなど)で開くことです。 .sshディレクトリは隠されているので、ファイルを見つけるにはテキストエディタのファイル選択ダイアログで、「隠しファイルを表示する」を有効にする必要があるかもしれません。 「隠しファイルを表示する」オプションは、ファイル選択ダイアログで右クリックすることによって利用できる場合があります。

その他の選択肢は:

  • Linuxで、cat ~/.ssh/id_ed25519.pubを実行して手動で出力をクリップボードにコピーする。
  • Windowsでは、Git GUIを開いて、Help 🡒 Show Key と進み、それから"Copy To Clipboard"を押すことで公開鍵をクリップボードにコピーすることができます。
  • macOSでは、pbcopy < ~/.ssh/id_ed25519.pubを実行して公開鍵ファイルの内容をクリップボードにコピーすることができます。

改行や空白を追加することなく、SSH公開鍵を書かれている通り正確にコピーすることが重要です。 先頭の"ssh-ed25519"、鍵自体、および末尾のメールアドレスを含む全テキストをコピーしてください。

Gitで使うためのSSH秘密鍵を追加する

SSHエージェントサービスを起動して、そこにSSH秘密鍵をGitサーバーに接続したいときに毎回追加しなければなりません。 つまりこれらのコマンドを実行後にGit Bashを閉じたならば、次回Git Bashを開いて再ログインするときにはコマンドを実行しなおす必要があるだろうということです。 さもなくばコードをプッシュしようとしたときにPermission deniedを受け取るでしょう。

Git Bashコマンドラインを開始します。

  • sshエージェントサービスを開始します
eval `ssh-agent`
シングルクォート 'ではなく、アクセント `を使っていることを確かめてください。 (この特殊文字を簡単に入力することができないならば、このページからコピーアンドペーストすることができます。) Linuxで代替シェル(例えばFish shell)を使っている場合には、このコマンドが動作しないかもしれないことにも注意してください。Bashに切り替えることで問題は解決するでしょう。
  • エージェントに秘密鍵を追加します。[1] 上記の手順に従っていて、鍵がデフォルトの名前id_ed25519であるならば、コマンドは以下の通りです:
ssh-add ~/.ssh/id_ed25519
If you get WARNING: UNPROTECTED PRIVATE KEY FILE!, run chmod 600 ~/.ssh/id_ed25519 and then rerun the above command.

macOSについてはCodeXの記事を参照してください。

  1. If as a Ubuntu user you have a "Permission denied (publickey)" message, please check on this help page