ラズパイでGitサーバを立ててpushしたら「Permission denied (publickey)」と出たので、それを直しただけの記事です。
やっていることは、RSA鍵を生成して使えるようにしただけですが、やったことが無かったので自分用のメモとして残したいと思い記事にしました。
ちなみに、今回の作業をするにあたって一時的にパスワード認証を許可しています。
鍵を作る
鍵を作ります。
鍵のファイル名がデフォルトだと嫌な場合は、
Enter file in which to save the key (/Users/(username)/.ssh/id_rsa):
と質問されたときに、新しいファイル名を入力すればOKです。
$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/Users/(username)/.ssh/id_rsa):ここにファイル名(無くても可) Enter passphrase (empty for no passphrase): Enter same passphrase again:
公開鍵をサーバに渡す
今回はrloginで渡します。
下の図で青枠で囲まれたやつを押せば転送画面が開きます。
id_rsa.pubファイルを選択して転送しましょう。
鍵をサーバに登録する
先ほどサーバに送った鍵を登録して使えるようにします。
まず.sshディレクトリを作ります。
$ mkdir /home/ユーザ名/.ssh/
catコマンドを使ってサーバに公開鍵を追加します。
$ cat /home/ユーザ名/id_rsa.pub >> /home/ユーザ名/.ssh/authorized_keys
パーミッションを設定します。
$ chmod 600 /home/ユーザ名/.ssh/authorized_keys
不要となった鍵を削除します。
$ rm /home/ユーザ名/id_rsa.pub
.ssh/configを作成
クライアント側での操作です。
.ssh/configがなければ新規作成します。
vim ~/.ssh/configで新規作成。
configの中身は以下のように書きます。
Host 接続先のサーバ名かアドレス HostName 接続先のドメインかIPアドレス User ユーザー名 Port 22 IdentityFile 鍵ファイル(~/.ssh/秘密鍵)
終わったら:wqで保存して閉じます。
以上で作業は終わりです。
あとは普通にpushすれば通るはずです。