【Linux】SSH Keyを新しいPCに移動させる
SSH Keyを新しいPCに移行する方法
はじめに
研究室のPCが交換となり、Githubやクラスタへの接続のために設定していたSSH Keyをそのまま使う必要がありました。
今後の備忘録として記録しておきます。
概要
- 旧PCから新PCへSSH Key(秘密鍵・公開鍵)をコピー
- 新PCで
~/.sshディレクトリを作成 - 新PCの
~/.sshディレクトリにSSH Keyを保存 - SSH秘密鍵のパーミッションを変更
chmod 600 ~/.ssh/id_rsa
詳細
1. 旧PCから新PCへSSH Key(秘密鍵・公開鍵)をコピー
旧PCの~/.sshディレクトリから、USBなどの外部メモリにSSH Keyをコピーします。
セキュリティの観点から、SSH秘密鍵をインターネット経由(メールやクラウドストレージ)で移動するのはやめましょう
GUIで操作する場合:
ファイルアプリでマウスでコピーします。
※ ファイルアプリの表示設定から、「隠しファイルを表示する」を選択することで、~/.sshディレクトリを表示することができます。
CUIで操作する場合:
こちらのコマンドでSSH Keyをコピーします。
cp ~/.ssh/id_rsa /media/usb/
cp ~/.ssh/id_rsa.pub /media/usb/
2. 新PCで~/.sshディレクトリを作成
SSH情報を置くディレクトリとして、~/.sshディレクトリをターミナルから作成します。
まずは、こちらのコマンドを入力して、ディレクトリが存在するか確認します。
ls -al ~/.ssh
-
~/.sshディレクトリが存在する場合:ファイルの種類と権限の一覧が表示される -
~/.sshディレクトリが存在しない場合:下記のメッセージが表示されるls: 'home/{user_name}/.ssh' にアクセスできません: そのようなファイルやディレクトリはありません
~/.sshディレクトリが存在しない場合はこちらのコマンドで~/.sshディレクトリを作成します。
mkdir ~/.ssh
3. 新PCへSSH Keyを保存
1で外部媒体にコピーしたSSH Key(秘密鍵・公開鍵)を、2で作成した新PCの~/.sshディレクトリに保存します。
例えば、USBメモリから新PCの~/.sshディレクトリにコピーする場合:
cp /media/usb/id_rsa ~/.ssh/
cp /media/usb/id_rsa.pub ~/.ssh/
外部メモリを他人と使いまわす場合は、SSH秘密鍵の漏洩を防ぐため、新PCへの保存後は削除しましょう。
4. SSH秘密鍵のパーミッションを変更
このまま、GitなどでSSH Keyを使おうとすると、以下のような警告文が表示されます。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0755 for '/Users/{user_name}/.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: home/{user_name}/.ssh/id_rsa
Permission denied (publickey).
これは秘密鍵ファイルのパーミッションが他のユーザーにも読み取り可能な状態になっているためです。セキュリティ確保のため、以下のコマンドで秘密鍵のパーミッションを変更します:
chmod 600 ~/.ssh/id_rsa
これによりパーミッションが「600」(所有者のみ読み書き可能)に変更され、SSH 接続が可能になります。
まとめ
SSH Keyをコピーするだけでなく、アクセス権限の変更も必要な点に注意が必要でした。
SSH秘密鍵の取り扱いには十分注意しましょう。
最後までお読みいただきありがとうございました。
Discussion