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

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

ただいまの
回答率

90.53%

  • CentOS

    2696questions

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

公開鍵を使用しSSHログインしたい。

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 1,175

yuki_90453

score 82

行った手順

セキリティの為、公開鍵でログインする設定を行いました。
設定手順としてはクライアントで秘密鍵と公開鍵を生成し、公開鍵をサーバーの
rootディレクトリにアップロード
「~/.ssh/authorized_keys」に鍵情報の追記を行い、sshdの設定を下記のように変更しました。

RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no

しかし、rootへの直接ログイン出来ないように設定していた為、rootに公開鍵を設定しても意味がないと考え(*1)、一般ユーザーに公開鍵をコピーし、一般ユーザーの「~/.ssh/authorized_keys」も追記を行いました。

sshdを再起動させた後、「ssh -i ~/.ssh/key user@133.99.99.99 -p 10022」で接続した所、パスワードなども要求されずログイン出来てしまいました。

質問

この一般ユーザーにはwebサイトを割り当てているので、それが原因なのでしょうか?
その場合、ログインように新たに一般ユーザーを追加して公開鍵を設定すべきでしょうか?


*1 rootに公開鍵を設定することが意味がない事なのか、よくわかっていません。直接ログイン出来ないので使う場面がないので意味がないと考えています。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

問題点がわかりにくいのですが、Carimaticsさんの回答のコメントに、

公開鍵設定した当初はパスフレーズの要求がありました。しばらく使う内に要求をしなくなってしまいました。

とあるので、このことが問題なのでしょうか? SSHにおけるパスワードとパスフレーズは違います。

パスワードはログイン時にサーバに送り、サーバ側でユーザのパスワードと一致するかどうかを検証するもの。
パスフレーズはSSHの秘密鍵の入ったファイルを暗号化する場合にその暗号化をとくためのもの。

最初は秘密鍵にパスフレーズをつけて使っていたのを鍵を作り直した際にパスフレーズなしになったのではないでしょうか?

SSH鍵認証でのログインも、公開鍵が機能しているのかどうかわかりません。

ssh は -v オプションでデバッグログを出力できます。

ssh -v ホスト名
...
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/ユーザ名/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Authentication succeeded (publickey).
...

みたいに出力されれば、公開鍵で認証されています。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/22 16:04

    問題点について
    1)鍵認証を設定したのに、通常SSH接続でもログイン出来てしまう事に問題はないのでしょうか?
    2)また鍵認証を設定しようとしているユーザーはftpやwebサイトの公開について割り当てられているのですが、鍵認証を設定する事によってサイトが閲覧出来なくなどの不具合は生じてしまうのでしょうか?

    パスワードとパスフレーズは別の物だったんですね。

    >>最初は秘密鍵にパスフレーズをつけて使っていたのを鍵を作り直した際にパスフレーズなしになったのではないでしょうか?
    鍵の生成は1回しか行っていないので作り直しは行っていません。
    サーバー上で公開鍵をrootから一般ユーザーに複製は行いましたが、鍵を新たに生成はしていません。

    デバッグログを確認した所、Authentication succeeded (publickey)の記述は見つかりました。

    しかし、通常のssh接続でログイン出来てしまうのに、わざわざ公開鍵でログインするメリットがあるのかわかりません。

    キャンセル

  • 2017/01/22 16:08

    ログについて念の為、下記のようになっております。
    OpenSSH_7.2p2, LibreSSL 2.4.1
    debug1: Reading configuration data /Users/.ssh/config
    debug1: Reading configuration data /etc/ssh/ssh_config
    debug1: /etc/ssh/ssh_config line 20: Applying options for *
    debug1: Connecting to 133.18.30.84 [133.18.30.84] port 10022.
    debug1: Connection established.
    debug1: identity file /Users/.ssh/key type 1
    debug1: key_load_public: No such file or directory
    debug1: identity file /Users/.ssh/key-cert type -1
    debug1: Enabling compatibility mode for protocol 2.0
    debug1: Local version string SSH-2.0-OpenSSH_7.2
    debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
    debug1: match: OpenSSH_5.3 pat OpenSSH_5* compat 0x0c000000
    debug1: Authenticating to 133.18.30.84:10022 as 'vpsuser'
    debug1: SSH2_MSG_KEXINIT sent
    debug1: SSH2_MSG_KEXINIT received
    debug1: kex: algorithm: diffie-hellman-group-exchange-sha256
    debug1: kex: host key algorithm: ssh-rsa
    debug1: kex: server->client cipher: aes128-ctr MAC: umac-64@openssh.com compression: none
    debug1: kex: client->server cipher: aes128-ctr MAC: umac-64@openssh.com compression: none
    debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(2048<3072<8192) sent
    debug1: got SSH2_MSG_KEX_DH_GEX_GROUP
    debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
    debug1: got SSH2_MSG_KEX_DH_GEX_REPLY
    debug1: Server host key: ssh-rsa SHA256:GExjs+E3QczH380bmkv2uKrruabqgVJbSvm1ieJbSps
    debug1: checking without port identifier
    debug1: Host '133.18.30.84' is known and matches the RSA host key.
    debug1: Found key in /Users/.ssh/known_hosts:1
    debug1: found matching key w/out port
    debug1: rekey after 4294967296 blocks
    debug1: SSH2_MSG_NEWKEYS sent
    debug1: expecting SSH2_MSG_NEWKEYS
    debug1: rekey after 4294967296 blocks
    debug1: SSH2_MSG_NEWKEYS received
    debug1: SSH2_MSG_SERVICE_ACCEPT received
    debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
    debug1: Next authentication method: publickey
    debug1: Offering RSA public key: /Users/.ssh/key
    debug1: Server accepts key: pkalg ssh-rsa blen 279
    debug1: Authentication succeeded (publickey).
    Authenticated to 133.18.30.84 ([133.18.30.84]:10022).
    debug1: channel 0: new [client-session]
    debug1: Requesting no-more-sessions@openssh.com
    debug1: Entering interactive session.
    debug1: pledge: network
    debug1: Sending environment.
    debug1: Sending env LC_CTYPE = ja_JP.UTF-8
    debug1: Sending env LANG = ja_JP.UTF-8

    キャンセル

  • 2017/01/22 16:23

    デバッグログから公開鍵認証でログインしているのは間違いありません。

    1)鍵認証を設定したのに、通常SSH接続でもログイン出来てしまう事に問題はないのでしょうか?
    鍵認証でログインしていますので、安全性はパスワード認証より高い状態です。鍵認証でログインする場合、パスワードは必要ありません。秘密鍵をパスフレーズ付きで格納されている場合はパスフレーズの入力を求められます。http://freak-da.hatenablog.com/entry/20100901/p1 にあるようにパスフレーズをつけるのは秘密鍵のファイルを盗まれるという脅威に対抗するもので、パスワードとは意味が違います。

    2)また鍵認証を設定しようとしているユーザーはftpやwebサイトの公開について割り当てられているのですが、鍵認証を設定する事によってサイトが閲覧出来なくなどの不具合は生じてしまうのでしょうか?

    SSHの鍵認証はSSHプロトコルでのみ利用されます。 FTP, HTTP には関係ありません。ただし、FTPがパスワード認証でログインできる状態で、SSHの鍵認証を設置するのはアンバラナスな気がします。SSHの鍵認証を設定するのであれば、scp でファイルを転送できるので、 FTPの利用は停止したほうがいよいように思います。

    キャンセル

  • 2017/01/22 16:35

    >>秘密鍵をパスフレーズ付きで格納されている場合はパスフレーズの入力を求められます。
    「~/.ssh/authorized_keys」に鍵情報の追記を行ったのですが、ここには以前設定した鍵情報も記述されていたのですが、これが問題なのかもしれません。
    パスフレーズを設定したはずなのに、要求してこないのはいまいちしっくりこないのですが、再度生成して設定してみるのが良さそうですね。

    >>FTPがパスワード認証でログインできる状態で、SSHの鍵認証を設置するのはアンバラナスな気がします。
    確かにそうですね、ご指摘ありがとうございます。

    キャンセル

0

パスワードなども要求されずログイン出来てしまいました。

「パスワード無しでログインできる事が問題だと思っている」という事ですか?

SSH鍵認証でログインする場合、パスワード無しでログイン可能ですよ。
そのための秘密鍵ですからね。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/22 15:25

    >>SSH鍵認証でログインする場合、パスワード無しでログイン可能
    しかし、SSHのみで接続してもパスワードの要求されませんでした。この場合、SSH鍵認証でのログインも、公開鍵が機能しているのかどうかわかりません。

    *リソース不足なんですが、公開鍵設定した当初はパスフレーズの要求がありました。しばらく使う内に要求をしなくなってしまいました。

    キャンセル

  • 2017/01/22 15:51

    > SSHのみで接続してもパスワードの要求されませんでした。

    SSHのみで接続とは?
    具体的なコマンドを教えてください。

    > SSH鍵認証でのログインも、公開鍵が機能しているのかどうかわかりません。

    以下のサイトを参考にしてどのように接続されているのか確認してください。
    http://linux.just4fun.biz/Linux環境設定/sshによる不正アクセスを確認する.html#z7fda4f1

    キャンセル

  • 2017/01/22 16:06

    参考URLありがとうございます。

    >>SSHのみで接続とは?
    「ssh user@133.99.99.99 -p 10022」を指します。
    鍵認証での接続は下記のように行っております。
    「ssh -i ~/.ssh/key user@133.99.99.99 -p 10022」

    キャンセル

  • 2017/01/22 16:20

    頂いたURLから「/var/log/secure」でログを確認した所、「Accepted publickey for user from 111.216.44. 55 port 46605 ssh2」とあり公開鍵での接続は出来ているようです。

    なぜ設定したパスフレーズが要求されないのでしょうか?
    設定して初めの何度かの接続ではパスフレーズの要求があったのですが、パスフレーズが記録されたから要求してこなくなったのでしょうか。

    キャンセル

  • 2017/01/22 16:30

    キャッシュされているのではないかと思います。
    以下を参考に確認してみてください。
    http://qiita.com/megane42/items/cfc720bd39a802f51442

    キャンセル

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

  • ただいまの回答率 90.53%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • CentOS

    2696questions

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