• ベストアンサー
  • すぐに回答を!

公開鍵の管理

現在,sshサーバを管理しているのですが, ユーザそれぞれの公開鍵を/home/user_name/.ssh/authorized_keysに保存しています. ユーザが秘密鍵をなくしてしまったりした場合にかってに対応する公開鍵を交換されたくないので, どこかのディレクトリで一括に管理したいのですが,可能でしょうか? よろしくお願いします.

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数174
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.2

シンボリックリンクやオーナーの変更をしたら認証が通らなくなるはずですが.... 私はやったことありませんが、sshd_configの「AuthorizedKeysFile」の設定でディレクトリ指定できると思います。 というか、素朴な疑問なのですが、ユーザが秘密鍵を無くしたらログインできないので「勝手に鍵交換」もできないのでは? パスワード認証を無効にしておけば済むのではないでしょうか。 それでも新しい鍵セットへの交換は勝手にやられてしまうかもしれませんが、なにか不都合があるのでしょうか?

共感・感謝の気持ちを伝えよう!

質問者からの補足

お返事ありがとうございます. 確かに秘密鍵がなかったら接続できませんね^^; 私がやりたかったことは公開鍵の一括管理なので,その方が環境を移行する際に便利かと思いまして今回の質問にいたりました.

関連するQ&A

  • 鍵交換方式のsshでアクセスするための設定について

    鍵交換方式のsshでアクセスするために、puttygen.exeというプログラムを使用して、秘密鍵と公開鍵を作成しました。 公開鍵はOpenSSHでは使用できないので、Linuxでssh-keygenコマンドを使用して使用可能な形式に変換しました。 それを$HOME/.ssh/authorized_keysというファイルに追加するため、 cat putty.pub >> $HOME/.ssh/authorized_keys を実行したところ、 -bash: cd: /home/.ssh: そのようなファイルやディレクトリはありません とでてしまいました。 root からとユーザログイン状態で、cd /home とし、ls -a としましたが、.ssh というディレクトリはないようです。 /home/.ssh/authorized_keys というファイルがあるはずなんですよね。。 どなたか教えて下さい。

  • 公開鍵と秘密鍵

    サーバ側で ssh-keygen -t rsa と入力すると,公開鍵と秘密鍵が生成されますが どうしてクライアント側に秘密鍵をもたせるのでしょうか? 逆でも通信できる気がします. あと,サーバ1台に対して,クライアントが複数いる場合に 公開鍵と秘密鍵のペアはクライアントの人数分生成するのが適切なのでしょうか? (複数のサーバに1台のクライアントが接続する場合も,各サーバが1台のクライアントに対して公開鍵・秘密鍵を生成するのが適切なのでしょうか?) よろしくおねがいします.

  • 外出先ホストからでも容易にSSH公開鍵アクセスできるようにするには

    RedHat9(host1)─WAN─RedHat9(host2) | WAN | Solaris2.6 としています。 host2で [user01@host2]$ ssh-keygen -t dsa [user01@host2]$ ssh-keygen -t rsa [user01@host2]$ ssh-keygen -t rsa1 [user01@host2]$cat ~/.ssh/id_dsa.pub >> ~/authorized_keys [user01@host2]$cat ~/.ssh/id_rsa.pub >> ~/authorized_keys [user01@host2]$cat ~/.ssh/identity.pub >> ~/authorized_keys [user01@host1]$ scp -P 60001 user01@host2:~/authorized_keys ~/.ssh/ [user01@host1]$ ls -l ~/.ssh/authorized_keys -rw------- 1 user01 user01 1179 1月 8 11:17 /home/user01/.ssh/authorized_keys [user01@host1]$ ls -alF ~/ | grep ssh drwx------ 2 user01 user01 4096 12月 23 13:06 .ssh/ として [user01@host2]$ ssh -l user01 host1 -p 60001 Enter passphrase for key '/home/user01/.ssh/id_rsa': となり、アクセスできました。 続いて、 [hoge@solaris]$ scp -P 60001 user01@host2:~/.ssh/* ./.ssh/ として host2の公開鍵、秘密鍵をコピーしました。 そして、 [hoge@solaris]$ ssh -l user01 host1 -p 60001 としてみましたら、 「Permission denied」 となってアクセス出来ません。 どうすればアクセス出来るようになるのでしょうか?

その他の回答 (1)

  • 回答No.1
  • entree
  • ベストアンサー率55% (405/735)

.sshディレクトリをシンボリックリンクにするのはだめですか? ユーザに勝手に交換されたくないだけであれば、 公開鍵のファイルとディレクトリの所有者をrootにするだけでよさそうですが。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

お返事ありがとうございます.

関連するQ&A

  • [VPS] 公開鍵認証を設定できません

    閲覧ありがとうございます さくらVPSを借契約して色々と試しているのですが 公開鍵認証の設定ができずに困っています どこが抜けて、あるいは間違えているのか教えてください VPSのOSは"ubuntu 14.04" clientのOSは"windows7"です ssh_config で設定を以下のように変更 ssh 12345 PermitRootLogin no PubkeyAuthentication yes UsePAM no PasswordAuthentication yes #失敗した時のために"yes"にしています .ssh ディレクトリを作成 $mkdir .ssh $chmod 700 .ssh client側でPuTTYを使い公開鍵と秘密鍵を作成 公開鍵をOpenSSHに変換し、VPSに送信 公開鍵を登録、パーミッションの変更 $cat xxx.pub >> $HOME/.ssh/authorized_keys $sudo chmod 600 authorized_keys ユーザーのパーミッションの変更 $chmod 755 /home/user ファイアーウォールは"ufw"で設定しています 変更したsshポートは許可しているので問題はないはずです 公開鍵の登録にコピペをしたいですが、できないため回りくどい方法になっています 何をしても設定ができないようであれば、長いPWを設定して使おうと考えていますが 大丈夫でしょうか?

  • SSH通信で秘密鍵の読み込みが失敗

    ●質問の主旨 クライアントコンピューターとサーバー間で SSH通信を行いたいと考えています。 公開鍵暗号方式でSSHサーバーに対して、 クライアントコンピュータからリモート接続を行おうとして クライアントのTeraTermを使って秘密鍵でアクセスしようとしたところ、 「SSH2秘密鍵の読み込みに失敗しました」という添付画像のような メッセージが出ます。 このメッセージ出されることなく、クライアント~サーバー間で SSH通信を行うためには、どこをチェックすればよいでしょうか? ご存知の方がいらっしゃいましたら、ご教示願います。 ●質問の補足 現在の状況は以下の通りです。 1.クライアントのTeraTermで秘密鍵(id_rsa)と公開鍵(id_rsa.pub)を作成 2.秘密鍵(id_rsa)はクライアントのCドライブのRSAという任意の名前のフォルダに保存 3. 公開鍵(id_rsa.pub)はSFTPでサーバーの一般ユーザのホームディレクトリに転送 4. 一般ユーザのホームディレクトリ配下に/.ssh/authorized_keysディレクトリを追加 (cat id_rsa.pub > /home/user/.ssh/authorized_keys) 5.chmodコマンドで.ssh及び.ssh/authorized_keysのアクセス権を変更 6.cat authorized_keysで中身を見ると、 公開鍵(id_rsa.pub)の文字の羅列が並んでいる ●環境 上記で言う、クライアントコンピュータはWindows8を使用しています SSHサーバーは、CentOS6.0をディストリビューションとするLinuxを使用しています

  • 複数人にSSHの秘密鍵と公開鍵を設定

    VPSを借りてまして、CentOS6.2です。 fooユーザとbarユーザとhogeユーザに、SSHの秘密鍵と公開鍵を設定するにはどうすれば可能(あるいはすべき)なのでしょうか? ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/Users/sorai/.ssh/id_rsa): // ファイル作成場所 Enter passphrase (empty for no passphrase): // パスフレーズを入力する Enter same passphrase again: // パスフレーズをもう一度入力する というのを、その人数分行わないとできないでしょうか?あるいはそうすべきでしょうか? 今、/root/.ssh/authorized_keysを /home/miya/.ssh/autauthorized_keysにコピーして、rootのとき成功した秘密鍵で、 miyaアカウントでSSHログインしようとしてもだめでした。 (ただ、パーミッションやユーザownerをどうすべきかわかりません) よろしくお願い申し上げます。

  • 公開鍵簿とは?

    暗号について勉強しています。本などの参考文献を読んでいると、公開鍵暗号では利用者Aが秘密鍵と公開鍵を生成し、公開鍵を公開簿などに登録して、Aと連絡を取りたいBが公開された鍵を利用して、文章を暗号化するとされているのですが、公開鍵簿となる物(同等の物)は実際にあるのでしょうか?

  • sftp時の公開鍵認証

    windowsサーバにSFTPサーバを構築し、公開鍵での認証をかけ、SFTPでファイルやり取りを行いたいのですが、 ファイルやり取りはできるのですが、公開鍵での認証がうまくいきません。 色々なサイトを調べながら以下手順で構築していったのですが、 公開鍵、秘密鍵での認証がうまくいってないように見えます。 なんでもいいので、何か分かる方いましたらご教授お願いします。 ※クライアントPC、サーバともにwindows ◆秘密鍵、公開鍵ファイルの作成(クライアントPC) 1.クライアントPCにSFTP接続ソフト「WinSCP」をインストール 2.「WinSCP」の補助ツール「PuTTYgen」により、秘密鍵ファイル、公開鍵ファイルを作成 3.作成した公開鍵ファイルをサーバへコピー ◆SFTPサーバ構築、公開鍵認証設定(サーバ) 4.サーバにSFTP環境構築ソフト「freeFTPd」をインストール 5.SFTPの接続先(アドレス、ポート22)を設定 6.ユーザー(ID、パスワード)を作成。そのユーザーのSFTP時ホームディレクトリを設定 7.SFTPのサービスを開始 8.6で設定したホームディレクトリの直下に「.ssh」ディレクトリ作成 9.「.ssh」ディレクトリの直下に「authorized_keys」ファイルを作成 10.3でコピーした公開鍵ファイルの中身を、「authorized_keys」ファイルに追加(テキストベースでのコピペ) ◆サーバへのSFTP接続(クライアントPC) 11.クライアントPCで「WinSCP」を起動。SFTPサーバのIP、6で設定したユーザーのID、2で作成した秘密鍵を設定しログイン 12.「Further authentication required Authenticating with public key "dsa-key-20140512" Access denied.」 と表示され、ログインできない 13.秘密鍵を使わず6で設定したユーザーIDとパスワードであれば、ログイン可能。SFTPサーバとのファイルのやり取りも可能 また、「.ssh」ディレクトリと「authorized_keys」ファイルに書き込み権限があるユーザーの場合に、認証が失敗するという情報があったので、 クライアントPCに書き込み権限を持っていないユーザーでログインし、WinSCPを起動してアクセスしてみたのですが、同じ結果でした。

  • SSHの公開鍵について

    お世話になっております。 現在3台のサーバA,B,Cがあり、AのサーバからB,Cにパスワードなしでログインできるようにするため、 AのサーバでSSHの公開鍵と秘密鍵を作成しました。(パスフレーズはnull) 具体的な手順は以下になります。 ------------------------------------------------------------------------------------------- 1. Aサーバにて公開鍵と秘密鍵を作成 A # ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (//.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in //.ssh/id_rsa. Your public key has been saved in //.ssh/id_rsa.pub. The key fingerprint is: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx root@A 2. 秘密鍵、公開鍵が作成されていることを確認 A # ls ~/.ssh id_rsa id_rsa.pub known_hosts 3. 公開鍵をBとCサーバへ配信 A # scp ~/.ssh/id_rsa.pub root@B:/tmp Password: id_rsa.pub 100% |***************************************| 223 00:00 4. BとCサーバ側で公開鍵の登録 B # cat /tmp/id_rsa.pub > ~/.ssh/authorized_keys ------------------------------------------------------------------------------------------- 登録後、AサーバからB,CサーバにSSHで接続してみたのですが、一見パスワードなしでログインできているようでした。 ただ、何故か B,Cサーバや無関係なDサーバからもAサーバへパスワードなしでアクセスできてしまいます。 公開鍵を登録したのはB,Cサーバのみで、B,CサーバからAサーバに対してパスワードなしでアクセスできないはずという認識です。 更に、数日後AサーバからB,Cサーバに接続を試みたところ、以下のメッセージが出力されました。 ------------------------------------------------------------------------------------------- ホスト 'B (1.1.1.1)' の認証を確立できません. RSA 鍵フィンガープリントは xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx です 本当に接続を継続してもよろしいですか (yes/no)? ------------------------------------------------------------------------------------------- 公開鍵はBサーバ初回接続時にknown_hostsへ登録済みで、Bサーバ側のIPアドレスの変更なども実施していません。 SSHの仕様で、公開鍵が数日で変更されるのでしょうか? 上記について、アドバイスや問題点があればご教示いただければ幸いです。

  • RedHatでDSA公開鍵認証ができません。。

    RedHatEL4.0で下記手順で公開鍵を置いても ServerAからServerBへのログインが、 パスワード認証となってしまいます(><) 1.ServerA,ServerBで、 同じ名前のユーザーを作りパスワードを設定しました。 2.ServerAでの作業 #ssh-keygen -t dsa #scp id_dsa.pub hoge@serverB:/home/hoge/.ssh/authorized_keys #ssh hoge@ServerB #known_hostに関してのプロンプトに、yesで答える ここで、公開鍵をServerBに設置したので、 パスワードなしでログイン完了!と期待していたのですが、 hogeユーザーのパスワード入力が聞かれてしまいます。。 原因は何でしょうか? 又、公開鍵認証でパスワードなしでログインするには、 同一ユーザー同一グループである必要があるのでしょうか?

  • 公開鍵と秘密鍵を新しく差し替える場合どうしますか?

    公開鍵と秘密鍵を新しく差し替える場合どうしますか? 新しいPCで作業するときにPCの名前を変更したついでに公開鍵と秘密鍵を新しく作成しようかと思ったのですが 差し替え方法がわからなかったので質問させていただきます それとも個人で使ってるレベルだったらわざわざそこまでせずに以前使っていたものを使いますか? みなさんが新しく作業PCを買い替えた時にどうしているか気になります たくさんの回答お待ちしております

  • SSHの公開鍵の使い方

    以前から、WinXPマシンに OpenSSH for Windows をインストし、それを通してリモートデスクトップをしていました。SSHクライアントは、PuTTYです。 SSHには公開鍵を使ってログインを制御すると良いといろいろなサイトで見かけるので、公開鍵を PuTTYgen で作成後に、OpenSSH 付属の ssh-keygen.exe で変換して鍵を作りました。そのあと、cmd で copy /b 鍵.pub > authorized_keys を実行しました。 #このとき、authorized_keysのコピーがうまくいって #なかったようなので、ノートパッドで、中身をコピー #しました。 しかし、鍵付きでアクセスしようとすると鍵を拒否され、しかも、鍵なしのWindowsログオンパスでログインできてしまいます。 どのようにしたら、鍵付きでログインできて且つ、ログイン制限をできますか? それと、おまけに聞きたいことがあるのですが、sshd_config のPermitRootLogin は no にした方がいいのでしょうか? #Linux風に行けば、したほうが断然いいのですが、 #Winだと、rootなんてないし・・・

  • authorized_keysに追加済の公開鍵をauthorized_keysから削除する方法?

    リモートサーバの.sshフォルダ内のauthorized_keysに追加した公開鍵が不必要になった場合、この鍵をauthorized_keysから削除するにはどのようにすればよいのでしょうか? 鍵の追加は,catコマンドを使用するのは分かりますが、 例)cat putty.pub >> $HOME/.ssh/authorized_keys 鍵の削除はどのようなコマンドを使用するのか分かりません。 注意: このスレッドでは、authorized_keysにcat putty.pub ファイルの内容を追加後、不必要となったcat putty.pub ファイルの削除の仕方を聞いているのではありません。このスレッドでお聞きしているのは、既にauthorized_keysに追加済みの複数の公開鍵の内、特定の鍵のみをauthorized_keysから削除する方法をお聞きしています。 よろしくお願いします。