0
1

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の秘密鍵を使い分ける

Last updated at Posted at 2020-05-19

SSHの公開鍵・秘密鍵のペアが複数あり、ホストに送った公開鍵に合わせて使い分けたい。

##-iオプションで使用したい秘密鍵のファイルを指定する

$ ssh -i ~/.ssh/id_rsa_hostA -p ポート番号 ユーザ@ホスト

このコマンドでリモートサーバにアクセスしようとしたところ、次のエラーが発生。

$ ssh -i ~/.ssh/id_rsa_hostA -p ポート番号 ユーザ@ホスト
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for '~/.ssh/id_rsa_hostA' 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_hostA": bad permissions

調べたところ、パーミッションを600に変更すれば良いそうなので実行。

$ chmod 600 ~/.ssh/id_rsa_hostA

再度アクセスを試みると無事できた。
##.ssh/configを編集して秘密鍵を使い分け
毎回-iオプションを入力するのは面倒なので、.ssh/configにホストと秘密鍵の対応を書いておく。

Host hostA
	HostName 192.168.0.1
	User user_a
	IdentityFile ~/.ssh/id_rsa_hostA
	Port 1111

Host hostB
	HostName hostb.com
	User user_b
	IdentityFile ~/.ssh/id_rsa_hostB

IdentityFileにそれぞれのホストで使用したい秘密鍵を指定する。HostNameはホスト名でもIPアドレスでも可能。Portでポート番号もしてできる。configが編集できたら、

$ ssh hostA

とするだけでホストごとに秘密鍵を切り替えて接続できる。
##自分用メモ
scpコマンドでローカルのファイルをホストに送信する際も同様に-iオプションが使用できる。

$ scp -P ポート番号 -i ~/.ssh/id_rsa_hostA -r ローカルパス ユーザ@ホスト:リモートパス

configを設定したものにオプションを付けたい時は、sshとホストの間に書く。

$ ssh -p 8888:8888 hostA
0
1
0

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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?