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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

SSH

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

539閲覧

SSH公開鍵について理解が進みません

creative_09

総合スコア80

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

SSH

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/04/29 16:02

SSH鍵をVPSサーバーなどに設定する際に
手順を見ながら設置しました。
設置に不備はなく、Teratarmなどでのssh接続もできておりますが、
理解が進まないままですので教えて下さい

公開鍵
秘密鍵
のそれぞれの役割などは理解していますが、
運用面でどのようにするのかがよくわかりません

SSHでログインできるユーザーを追加する場合について
サーバーへの追加ユーザーを作り、
そのユーザーが自分のパソコンで作成した秘密鍵、公開鍵のうち、
公開鍵をサーバーへコピーする

この流れでいいのでしょうか?
その場合、サーバーへSSHでログインできるユーザーがまた増えた場合、
同じ手順でまたサーバーへ公開鍵をコピーするようなことになるのは普通なのでしょうか?
100人いれば100個の公開鍵となるのが普通ならそれでいいのですが、
なにかどこかで理解が間違っているのか、
運用方法の考え方がまちがっているのかよくわからず、
教えて頂ければと思っています
ソースコード等はないのですが、よろしくお願いいたします

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

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

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

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

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

guest

回答1

0

ベストアンサー

この流れでいいのでしょうか?

良いです

100人いれば100個の公開鍵となるのが普通ならそれでいいのですが、

普通です

秘密鍵と公開鍵はセットで作成する必要があります。
一人一人が個人で秘密鍵を管理する場合、公開鍵は一人ずつ異なったものになるため、この運用になります。

100個セットするのが面倒な場合、共通ユーザーを作って、秘密鍵を何らかの方法で共有するという手順もできますが、秘密鍵の漏洩のリスクが発生する他、誰がsshでアクセスしたのかわからない、というセキュリティ上のリスクが発生します。

投稿2020/04/29 16:12

moya_dev

総合スコア183

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

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

creative_09

2020/04/29 16:20

ありがとうございます。 もっと色々便利な運用方法があるのかなと思っていましたが、 理解が進みました。 鍵の使い回しで工夫することはできるが、誰かわからなくなる上、 漏洩のリスクも高くなる。漏洩いちゃったら該当者全員に迷惑がかかる そんなかんじですね。 回答に質問して申し訳ないのですが、もうひとつすっきりしないことが出てきました。 サーバー上での鍵は・・・Keysとなっているようですが、ここへ追加記述ということで上書きしちゃったら大変なことになるという認識もまちがいないでしょうか? これも通常はファイルを100個追加するのではなく、ひとつのファイルへ追記していく方法でよいのでしょうか?
yuicho

2020/04/29 16:54

> これも通常はファイルを100個追加するのではなく、ひとつのファイルへ追記していく方法でよいのでしょうか? 1ユーザーに複数追加する場合ということであってますかね? その場合、一行に一つの公開鍵の形で、どんどん追記していきます。 上書きしてしまったら、今までの秘密鍵では入れなくなってしまうという意味で「大変なこと」になると思います
creative_09

2020/04/30 00:53

回答ありがとうございます。 1サーバーに複数のユーザーの場合、 サーバーにセットする公開鍵はサーバー側にある公開鍵を追記の形で良かったでしょうか? 1ユーザーに複数追加がよくわかりません。そのような運用もできるのでしょうか。 運用としては一つのサーバーにそれぞれのユーザーが作った公開鍵をサーバーへ登録したいです。 その登録の際にサーバー側の〇〇Keysファイルに追記で良いのかなぁと思った次第です。 返信を重ね申し訳ございませんがよろしくお願い致します
creative_09

2020/04/30 01:02 編集

ユーザーを追加するとユーザー毎のフォルダとかになるのでしょうか?? その場合はもともと上書きにもならないですね。。。 だとしたら意味不明な質問をしているので申し訳ないです
yuicho

2020/04/30 01:50

サーバー側で公開鍵記述するファイルの設置場所は、設定を変更していなければ ~/.ssh/authorized_keys です。 つまり、各ユーザーのホームディレクトリ配下に設置することになり、複数ユーザーが共有するわけではありません。 (設定で絶対パスの指定もできるみたいだけど、その時は権限どうなるんだろう) > 1ユーザーに複数追加がよくわかりません。そのような運用もできるのでしょうか。 可能です。 秘密鍵はネットワーク等を介して持って回るとそれだけでリスクと言えます。 また、同じユーザーでも複数環境で共有すると紛失時や流出時に再発行した場合、全ての環境に新しい秘密鍵を持って来る手間が生まれます。 なので、同じユーザーと言えども環境(マシン)ごとに鍵を生成して、それらの公開鍵をサーバー側へ複数設置しておくことで、どの秘密鍵を用いてもログインできるようになります。
creative_09

2020/04/30 02:12

各ユーザーのディレクトリに配置されるのですね。 よくわかりました。 自分のやり方では上書きにすらならなさそうで安心です。 1ユーザーに対して複数は考えないようにしたほうがいいのかなとおもいますので、頭に留めておくだけにしておきます。 長々とありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問