プログラミング

WARNING: UNPROTECTED PRIVATE KEY FILE! と表示される。【Windows10】

投稿日:2020年1月23日 更新日:

Ruby On Railsチュートリアルをやってる。WindowsにUbuntuを入れられるようになってるので、インストールして、環境を整えた。

Ruby On Railsチュートリアルの、Gitでプロジェクト管理をするところで、公開鍵を設定するところで問題が起きた。
事の顛末と問題解決方法を書こうと思う。

チュートリアルではBitbacketを使っている。Bitbacketでは、無料プランでもプライベートに設定できるのに対して、Githubでは公開のみだったかららしい。

今では、Githubでも無料でプライベートに設定できる。ただし、チュートリアルには載ってないので、自分でやった。

鍵を作成する。

ssh-keygenと打ち込んで、あとはリターンを押しまくると、.sshというフォルダの中にid_rsaとid_rsa.pubというのができる。この内id_rsa.pubをGithubに登録する。

cat id_rsa.pubとすると、表示されるので、コピーして、

GithubのサイトのSetting>SSH and GPG key>SSH keysに行く。

そこのNew SSH keyをクリックして、Keyのところに先程のコピーした鍵を貼り付ける。Add SSH keyをクリックすると登録される。

ホーム画面に戻って、RepositoriesのNewをクリックする。

Repository nameは、Railsで作ったアプリケーションの名前、Public/PrivateはPrivate(ここが昔は有料だった) ほかはそのままでCreate Repositoryをクリックする。

すると、セットアップの方法が出てくるので、チュートリアル的には

…or push an existing repository from the command lineを選択。

git remote add origin git@github.com:hogehoge/hello_app.git

git push -u origin master

をする。ここで問題が発生した。

git push -u origin master をすると、

@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
Permissions 0777 for '~/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "~/.ssh/id_rsa": bad permissions
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

と表示される。鍵がセキュリティ的にいけない状態らしい。
LinuxとかMacだと、chmod 600 ~/.ssh/id_rsa でいいのだけど、Windows10は何度やっても777になってる。
原因は、最初に、カレントディレクトリをC:の下に作って移動させたので、鍵のディレクトリが鍵作成時にデフォルトでそのカレントフォルダの中に作成された。C:(カレントディレクトリ)/.ssh/id_rsa となっていた。

ここは、Windowsだと、パーミッションをコントロールできない位置のようだ。
ファイルのプロパティから権限を変えてみたがだめで、他のところに移動して、シンボリックリンクを貼ってみたがそれでもだめだった。
最終的には、鍵を再び作成して、パスを/home/以下に作るとうまくいった。
ssh-keygenを実行するときに、以前はそのままリターンを押したので、デフォルトでカレントディレクトリに作られ、問題が起こった。
カレントディレクトリを変えなかったら、この問題は起きないかもしれない。
追記:
後日つなげようとしたら、繋がらなくなった。
(カレントディレクトリ)/.sshに、configファイルを作って、
Host github.com
User ユーザー名
IdentityFile (鍵へのパス)
を書き込んだ。その後、configファイルのパーミッションを変更する。
プロパティ/セキュリティの自分が使ってるユーザー名のアクセス許可を読み取りと変更のみにする。アクセス許可の範囲を絞るのがポイントだ。
すると、鍵を読み取るようになって、gitにつながるようになった。
上の.(カレントディレクトリ)/.sshに鍵を作って、鍵のパーミッションを設定するのに再びトライしたが、こちらはどうしてもできなかった。600とかの設定ができない。

ssh-keygen」で検索:

-プログラミング

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

ゲームでも作ってみようか。

ゲーム作ろうと思って、iPhoneでSpriteKitというのが簡単そうなので、資料を探したがいいのがない。これとかやったけど、足りない。これはObjective-Cだ。自分はそれの方が、前アプリ作っ …

no image

pythonでIOError: [Errno 2] No such file or directory: ‘~’

pythonでプログラミングしていて、IOError: [Errno 2] No such file or directory: ‘/Users/user/files/sample.txt …

no image

Coreserver:サイト設定の新規設定時、IPアドレスを当サーバに向けて下さい。と出る。

Coreserverで、サイト設定の新規設定で、サブドメインをドメイン名にして、SSLを無料SSLにして、新規設定しようとすると、 サイトの新規設定に失敗しました。 IPアドレスを当サーバに向けて下さ …

no image

CoreserverにLaravelをインストール

webフレームワークのSinatraが簡単だったので、なにか作ってレンタルサーバーにアップしてドメインに対応しようとしたが、できなかったので、ほかのフレームワークを探した。Laravelというのがよさ …

no image

Xcodeでプロジェクトをコピペしてプロジェクト名ターゲット名その他変更して動くようにする

目次 (このページの内容) 1.問題 MacのXcodeでプロジェクトをコピペして名前変えても動かない。動くようにしたい。 2.解決法 2-1プロジェクトをコピペする 2-2フォルダ名をすべて新しい名 …

目次上ユニット

はじめまして、あつろうです。

個人ブログを立ち上げました。

日々思うことを書き連ねていこうと思っています。

よろしくお願いします。