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

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

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

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

Q&A

解決済

2回答

4275閲覧

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

yuki_90453

総合スコア326

CentOS

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

0グッド

2クリップ

投稿2017/01/22 05:51

編集2017/01/22 05:52

###行った手順
セキリティの為、公開鍵でログインする設定を行いました。
設定手順としてはクライアントで秘密鍵と公開鍵を生成し、公開鍵をサーバーの
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に公開鍵を設定することが意味がない事なのか、よくわかっていません。直接ログイン出来ないので使う場面がないので意味がないと考えています。

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

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

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

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

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

guest

回答2

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 06:50

mit0223

総合スコア3401

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

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

yuki_90453

2017/01/22 07:04

問題点について 1)鍵認証を設定したのに、通常SSH接続でもログイン出来てしまう事に問題はないのでしょうか? 2)また鍵認証を設定しようとしているユーザーはftpやwebサイトの公開について割り当てられているのですが、鍵認証を設定する事によってサイトが閲覧出来なくなどの不具合は生じてしまうのでしょうか? パスワードとパスフレーズは別の物だったんですね。 >>最初は秘密鍵にパスフレーズをつけて使っていたのを鍵を作り直した際にパスフレーズなしになったのではないでしょうか? 鍵の生成は1回しか行っていないので作り直しは行っていません。 サーバー上で公開鍵をrootから一般ユーザーに複製は行いましたが、鍵を新たに生成はしていません。 デバッグログを確認した所、Authentication succeeded (publickey)の記述は見つかりました。 しかし、通常のssh接続でログイン出来てしまうのに、わざわざ公開鍵でログインするメリットがあるのかわかりません。
yuki_90453

2017/01/22 07: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
mit0223

2017/01/22 07:23

デバッグログから公開鍵認証でログインしているのは間違いありません。 1)鍵認証を設定したのに、通常SSH接続でもログイン出来てしまう事に問題はないのでしょうか? 鍵認証でログインしていますので、安全性はパスワード認証より高い状態です。鍵認証でログインする場合、パスワードは必要ありません。秘密鍵をパスフレーズ付きで格納されている場合はパスフレーズの入力を求められます。http://freak-da.hatenablog.com/entry/20100901/p1 にあるようにパスフレーズをつけるのは秘密鍵のファイルを盗まれるという脅威に対抗するもので、パスワードとは意味が違います。 2)また鍵認証を設定しようとしているユーザーはftpやwebサイトの公開について割り当てられているのですが、鍵認証を設定する事によってサイトが閲覧出来なくなどの不具合は生じてしまうのでしょうか? SSHの鍵認証はSSHプロトコルでのみ利用されます。 FTP, HTTP には関係ありません。ただし、FTPがパスワード認証でログインできる状態で、SSHの鍵認証を設置するのはアンバラナスな気がします。SSHの鍵認証を設定するのであれば、scp でファイルを転送できるので、 FTPの利用は停止したほうがいよいように思います。
yuki_90453

2017/01/22 07:35

>>秘密鍵をパスフレーズ付きで格納されている場合はパスフレーズの入力を求められます。 「~/.ssh/authorized_keys」に鍵情報の追記を行ったのですが、ここには以前設定した鍵情報も記述されていたのですが、これが問題なのかもしれません。 パスフレーズを設定したはずなのに、要求してこないのはいまいちしっくりこないのですが、再度生成して設定してみるのが良さそうですね。 >>FTPがパスワード認証でログインできる状態で、SSHの鍵認証を設置するのはアンバラナスな気がします。 確かにそうですね、ご指摘ありがとうございます。
guest

0

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

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

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

投稿2017/01/22 06:15

carimatics

総合スコア740

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

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

yuki_90453

2017/01/22 06:25

>>SSH鍵認証でログインする場合、パスワード無しでログイン可能 しかし、SSHのみで接続してもパスワードの要求されませんでした。この場合、SSH鍵認証でのログインも、公開鍵が機能しているのかどうかわかりません。 *リソース不足なんですが、公開鍵設定した当初はパスフレーズの要求がありました。しばらく使う内に要求をしなくなってしまいました。
carimatics

2017/01/22 06:51

> SSHのみで接続してもパスワードの要求されませんでした。 SSHのみで接続とは? 具体的なコマンドを教えてください。 > SSH鍵認証でのログインも、公開鍵が機能しているのかどうかわかりません。 以下のサイトを参考にしてどのように接続されているのか確認してください。 http://linux.just4fun.biz/Linux環境設定/sshによる不正アクセスを確認する.html#z7fda4f1
yuki_90453

2017/01/22 07:06

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

2017/01/22 07:20

頂いたURLから「/var/log/secure」でログを確認した所、「Accepted publickey for user from 111.216.44. 55 port 46605 ssh2」とあり公開鍵での接続は出来ているようです。 なぜ設定したパスフレーズが要求されないのでしょうか? 設定して初めの何度かの接続ではパスフレーズの要求があったのですが、パスフレーズが記録されたから要求してこなくなったのでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問