質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Q&A

解決済

4回答

1520閲覧

【公開鍵認証】秘密鍵について分からないことがあります

pecchan

総合スコア555

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

0グッド

0クリップ

投稿2019/04/24 00:54

公開鍵認証の「秘密鍵」について2点ほどご質問させていただきます。

・どのタイミングで秘密鍵は使われているのか
特に「秘密鍵を使う」といったコマンドは無いかと思いますが、
サーバにログイン時、どのようにして「秘密鍵」を使うのでしょうか?

接続時のコマンドにより、内部処理で「秘密鍵」を使うようになっているのでしょうか?
ssh ユーザ@server-address

・別のローカルPCから接続する場合
鍵を作成したローカルPCとは別のPCからサーバにログインする際は、
事前にそのPCに秘密鍵をコピーしておくのでしょうか?
その場合、どこに配置しておくのでしょうか?

検討違いの質問をしているかもしれません、どうぞ宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

・どのタイミングで秘密鍵は使われているのか

文面からsshコマンドにおける秘密鍵の扱いをお伺いしているように見受けられましたのでそれ前提の回答です。

OpenSSHであれば、sshを使用する際のデフォルトの挙動をコンフィグで定義しています。
デフォルトは以下。

IdentityFile ~/.ssh/identity
IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_dsa

従って、接続ユーザのホームディレクトリ以下に上記ファイルが存在している場合は秘密鍵の指定を省略することが可能です。
上記以外に秘密鍵を格納している場合は-iオプションにて秘密鍵を明示的に指定する必要があります。

・別のローカルPCから接続する場合

接続する際に公開鍵認証を望む場合は、接続する際に秘密鍵が必要になりますのでご認識の通りです。

その場合、どこに配置しておくのでしょうか?

sshを発行するプラットフォームに依ります。
Linuxホスト、OpenSSH構成であれば、配置場所は先に述べた通り、オプションを省略を希望するのであればホームディレクトリの.ssh以下に格納します。
他プラットフォームの場合は使用するソフトウェアにもよりますので、ご自身でマニュアルを確認の上、適切な場所に配置すべきと考えます。

投稿2019/04/24 02:32

編集2019/04/24 02:34
over

総合スコア4309

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pecchan

2019/04/24 05:13

有難う御座います。 とても分かりやすく大変参考になりました。
guest

0

特に「秘密鍵を使う」といったコマンドは無いかと思いますが

ssh コマンドに秘密鍵を使う オプション はありますよ。 https://linux.die.net/man/1/ssh

-i identity_file
Selects a file from which the identity (private key) for RSA or DSA authentication is read. The default is ~/.ssh/identity for protocol version 1, and ~/.ssh/id_rsa and ~/.ssh/id_dsa for protocol version 2.

現時点でほとんど protocol version 2 なので、 ~/.ssh/id_rsa に秘密鍵を置くことが多いですね。
ssh-keygen コマンドのデフォルト値もここです。

また、 ~/.ssh/config に記載することで明示的に秘密鍵を指定することもできます。

接続時のコマンドにより、内部処理で「秘密鍵」を使うようになっているのでしょうか?

~/.ssh/config に接続先ホストに関する指定があればそれに従いますが、そうでない場合は鍵認証ができるか確認し、使えない場合はパスワードによる認証に切り替えたりしていますね。切り替えるのはsshコマンドで自動的に判断してくれています。

鍵を作成したローカルPCとは別のPCからサーバにログインする際は、

事前にそのPCに秘密鍵をコピーしておくのでしょうか?

秘密鍵はコピーしてはいけません。別のPCからsshログインしたいときなどは、別のPCでキーペア(公開鍵と秘密鍵)を生成して、公開鍵( ~/.ssh/id_rsa.pub )をログインするサーバーへ登録します。
この辺の手順に関しては検索するとたくさん出てきます。

原則として秘密鍵はネットワークやUSBメモリなども含め、PCの外に出し入れすることは無いと思ってください。

投稿2019/04/24 02:23

mather

総合スコア6753

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2019/04/24 02:34

「秘密鍵を保管するセキュリティキー」というのがあって、何らかの事情で秘密鍵をポータブルに運用したいときはそういうのを使うといいかもしれません(秘密鍵はキーの中で生成する&SSHの認証なども鍵の処理はセキュリティーの中で行うので、本人ですら秘密鍵を取り出して見ることができないようになっています)。
pecchan

2019/04/24 05:12

コマンドあったのですね。失礼しました。 秘密鍵は、セキュリティ上コピーするのは好ましくないわけですね。勉強になります、有難う御座います。
mather

2019/04/24 05:13

なるほど。そういうセキュリティ対策をすればポータブルにするのもありですね。
guest

0

鍵を作成したローカルPCとは別のPCからサーバにログインする際は

一般には、ログインするマシンごとに秘密鍵を作る(そして、秘密鍵を登録しておく)ほうがいいと思います。

投稿2019/04/24 01:04

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pecchan

2019/04/24 05:12

ログインするマシンごとですね。有難う御座います。参考になりました。
guest

0

ログイン時に秘密鍵は使われてます

鍵を作成したローカルPCとは別のPCからサーバにログインする際は、

事前にそのPCに秘密鍵をコピーしておくのでしょうか?

そのとおりです
ログインするツールに登録する形となります
「ssh 秘密鍵」でぐぐれば解説の記事が出てきますね

投稿2019/04/24 00:59

y_waiwai

総合スコア87749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pecchan

2019/04/24 05:11

有難う御座います。 やはりログイン時に使われているのですね。 「ssh 秘密鍵」でググってみます。 有難う御座いました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問