キノコが何か作るブログ

ゲーム・ドット絵・アプリなどを作ります

MENU

push時にPermission denied (publickey)が出た時の対処法

ラズパイで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で渡します。
下の図で青枠で囲まれたやつを押せば転送画面が開きます。
f:id:mizukinoko:20200320134227p:plain
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すれば通るはずです。

プライバシーポリシー