もうすぐそこにいるようですね!あなたが何をしていて、何をしていないのか正確にはわかりませんので、プロセス全体を説明します。
まず、コンピューターがWindowsを実行していると推測しています(puTTYを使用しているため)。その場合は、最初にGit for Windowsをインストールする必要があります。これは、Gitの公式Webサイトからダウンロードできます。ダウンロードしてインストールし、インストーラーのデフォルトの選択を受け入れます。
これにより、スタートメニューにGitBashという項目が残ります。これを使用して、次に来ることを実行します。(実際にはGit自体をインストールする必要はありませんが、Git for Windowsインストーラーはssh-keygen
必要になるような追加のツールをいくつか追加します。)
コンピュータが実際にWindowsではなくLinuxまたはMacOSXを実行している場合は、必要なツールがすでに用意されています。同じ手順に従うことができますが、Git Bashを使用してコマンドを入力する代わりに、ターミナルウィンドウを使用します。
これからは、「ターミナルで」入力することに言及します。Windowsを使用している場合は、GitBashウィンドウにこれらを入力します。
ステップ1:自分のコンピューターで、SSHキーペアを確認します
ターミナルで、次のように入力します。
ls ~/.ssh/id_rsa*
これにより、id_rsaとid_rsa.pubの2つのファイルがリストされます。存在する場合は、手順2に進みます。存在しない場合は、次のように入力します。
ssh-keygen
次に、プロンプトに従ってそれらを作成します。次に、ls
コマンドを再度実行して、それらが現在そこにあることを確認します。
ステップ2:公開SSHキーをサーバーにアップロードする
公開鍵はid_rsa.pubと呼ばれるものです。scp
次のコマンドを使用して、サーバーにアップロードできます。
scp ~/.ssh/id_rsa.pub git@my-server.com
プロンプトが表示されたら、gitユーザーのパスワードを入力します。
ステップ3:gitユーザーのauthorized_keysファイルにキーを追加します
最初にgitユーザーとしてサーバーにSSHで接続します。
ssh git@my-server.com
gitユーザーのパスワードをもう一度入力します。gitユーザーとしてログインしたら、次のように入力します。
mkdir -p ~/.ssh/
.sshディレクトリがまだ存在しない場合は、これにより作成されます。存在する場合は、何もしません。
次に、authorized_keysファイルにキーを追加します。
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
これにより、アップロードしたファイルであるid_rsa.pubの内容が取得され、authorized_keysファイルの最後に追加されます。authorized_keysが存在しない場合、このコマンドは最初にそれを作成します。
>>
(注:コマンドラインに2つの直角括弧()を入力する場合は十分に注意してください。2つの直角括弧は、 id_rsa.pubの内容をauthorized_keysファイルに追加することを意味します。1つだけを使用する場合は、authorized_keysの内容をid_rsa.pubのコンテンツであり、それは望ましくありません。)
これが機能したことを確認するには、各ファイルを実行cat
し、authorized_keysの最後にid_rsa.pubの内容が表示されていることを確認します。
cat ~/id_rsa.pub
cat ~/.ssh/authorized_keys
それを確認したら、id_rsa.pubを削除します。二度と必要ありません。
rm ~/.ssh/id_rsa.pub
最後に、.sshディレクトリと.ssh / authorized_keysにアクセス許可を設定して、これらのファイルの所有者(gitユーザー)のみがアクセスできるようにします。そうしないと、SSHサーバーはそれらの使用を拒否します。それで:
chmod 700 ~/.ssh
chmod 400 ~/.ssh/authorized_keys
これにより、ディレクトリはgitユーザーのみが使用できるようになり、その中のファイルはgitユーザーのみがアクセスできるようになります。
あなたは今あなたが行ってもいいと思うはずです!