25
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SSH鍵を新しいPCに移動させる方法(mac)

Posted at

はじめに

先日PCを買い替えたのですが、諸事情で旧PCで設定していたSSH鍵を引き続き使う必要がありました。
かなり試行錯誤したので、次回以降のためにまとめたいと思います。

手順

  1. 新PCで.sshディレクトリを作成する
  2. 旧PCからSSH秘密鍵とSSH公開鍵をコピーする
  3. 新PCの.sshディレクトリにコピーした鍵を保存する
  4. パーミッションを設定する

以下、手順の詳細を記載します。

1. 新PCで.sshディレクトリを作成する

sshの情報を置くディレクトリとして、.sshディレクトリをターミナルから作成します。
ターミナルを起動して、下記コマンドを入力してディレクトリを作成してください。

$ mkdir ~/.ssh

2. 旧PCからSSH秘密鍵とSSH公開鍵をコピーする

旧PCに保存しているSSH秘密鍵とSSH公開鍵をコピーします。
ターミナルの操作(CUI操作)でもできるのかもしれませんが、私はCUI操作が苦手なのでFinderからマウスを操作して(GUI操作)でUSBなどの外部ファイルにコピーしました。

Finderで.sshディレクトリなど隠しファイルを見る方法
Finderを選択した状態でcommand(⌘)Shift(⇧)ドット(.)を同時に押してください。
隠しファイルが表示されます。
.sshディレクトリはFinderのユーザーディレクトリの中にあります。

3. 新PCの.sshディレクトリにコピーした鍵を保存する

外部ファイルに保存したSSH秘密鍵とSSH公開鍵を新PCの.sshディレクトリに保存します。
私はこちらもGUI操作で行いました。

4. パーミッションを設定する

このままgitなどでSSH鍵を使おうとすると、下記のような忠告文がターミナル上で表示されます。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0755 for '/Users/{ユーザー名}/.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.
bad permissions: ignore key: /Users/{ユーザー名}/.ssh/id_rsa
Permission denied (publickey).

要は「id_rsaがオープンすぎて、秘密鍵になってないよ」って警告しているわけです。
そこでid_rsaのパーミッションを変更します。
まずはターミナルでls -l ~/.sshとコマンドを入力して、パーミッション状況を確認。
恐らく下記のようなものが出力されます。

$ ls -l ~/.ssh              
total 48
-rw-r--r--  1 {ユーザー名}  staff  2622  6  7 20:38 id_rsa
-rw-r--r--  1 {ユーザー名}  staff   586  6  7 20:38 id_rsa.pub
-rw-r--r--  1 {ユーザー名}  staff   606  6  7 21:11 known_hosts

id_rsaのパーミッションが、

  • 所有者:読み出し(r)、書き込み(w)可能
  • グループ:読み出し(r)可能
  • 他人:読み出し(r)可能

となっていることが分かりますね。
これを「所有者のみ操作可能」へとパーミッションを変更していきます。
パーミッションを変更するために、下記のコマンドを入力してください。

$ chmod 600 ~/.ssh/id_rsa

そして先ほどと同じようにls -l ~/.sshとコマンドを入力して、パーミッション状況を確認します。

$ ls -l ~/.ssh              
total 48
-rw-------  1 {ユーザー名}  staff  2622  6  7 20:38 id_rsa
-rw-r--r--  1 {ユーザー名}  staff   586  6  7 20:38 id_rsa.pub
-rw-r--r--  1 {ユーザー名}  staff   606  6  7 21:11 known_hosts

無事にid_rsaのパーミッションを変更できていますね。
この状態でなら、gitなどでSSH鍵を使おうとしても先ほどのような警告が出ることなく、普段通りに使用できるようになっていると思います。


以上です。 最後までお読みいただき、ありがとうございました。
25
23
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?