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

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

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

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

Q&A

解決済

2回答

2537閲覧

CentOS 公開鍵でのsshについて

Alt_

総合スコア26

CentOS

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

0グッド

0クリップ

投稿2018/02/08 12:43

CentOSで公開鍵認証接続をするために公開鍵・秘密鍵を作成、パスフレーズ設定、サーバにコピーの手順を一通りして、最後にsshでサーバに接続するコマンド

①ssh -i /Users/name/.ssh/id_rsa username@xxx.xxx.xxx.xxx

を入力し鍵作成時に設定したパスフレーズを入力したところ、Permission deniedではじかれ、通常のsshのパスワードを入力すると通ってしまいます。

原因を調べたら(sshd_coonfigの設定やselinuxの停止などはやりました)パーミッションを変更とのことなので変更し、

②ssh username@xxx.xxx.xxx.xxx

このいつものssh接続をするコマンドを打ったらここで何故か秘密鍵のディレクトリが表示され、パスフレーズを聞かれてログイン、になりました。表示→Enter passphrase for key /Users/name/.ssh/id_rsa:"パスフレーズ入力"

そのあとに①のコマンドを試したところ、そっちでは変わらずにパスフレーズは聞かれずに通常のssh接続になってしまいました。
公開鍵認証は一度接続できれば今後はパス入力などはいらないはず?だと思うのですが、②で接続後にログアウトしても、またパスフレーズを聞かれます。
これは成功してるのでしょうか?どういう状況かよくわからないので教えていただけると助かります。

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

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

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

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

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

guest

回答2

0

ベストアンサー

~/.ssh/id_rsa にパスフレーズがかかっているので、それを利用する際に毎回パスフレーズを入力する必要があります。
それは手間なので、ssh-agent を使います。

(1) ssh-agent が起動しているかどうか確認し、起動していなければ以下のコマンドで起動します。

(bash の場合) $ eval `ssh-agent` 環境変数 SSH_AGENT_PID, SSH_AUTH_SOCK が設定されます。

(2) ssh-agent に秘密鍵を登録します。

$ ssh-add ~/.ssh/id_rsa Enter passphrase for /home/user/.ssh/id_rsa: (秘密鍵のパスフレーズを入力) Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa) $ ssh-add -l (登録されていることを確認) 2048 SHA256:gK9LyuQNmG1v91vhCvAODurAg9tHhboiU7MmeVVVD/0 /home/user/.ssh/id_rsa (RSA)

ssh でログインしてみてください。
秘密鍵のパスフレーズの入力は求められないはずです。

終了の仕方は以下のとおりです。

秘密鍵の登録解除 $ ssh-add -d ~/.ssh/id_rsa または $ ssh-add -D ssh-agent の終了 $ ssh-agent -k

投稿2018/02/08 15:17

TaichiYanagiya

総合スコア12146

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

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

Alt_

2018/02/08 15:32

回答ありがとうございます!ssh sshuser@//ip_addles でパスワードを求められることなく接続できました。 これはもう公開鍵認証で成功していて、登録解除や公開鍵の削除、PasswordAuthentication noなどにしても大丈夫でしょうか??
TaichiYanagiya

2018/02/09 12:52

> これはもう公開鍵認証で成功していて、 はい。 > 登録解除や公開鍵の削除、PasswordAuthentication noなどにしても大丈夫でしょうか?? Alt_ さんの言う「大丈夫」がどういう状態なのかわかりませんが、パスワード認証を無効にしたいのであれば「PasswordAuthentication no」とすればいいと思います。 手元の公開鍵は秘密鍵から再作成することができますが、あえて削除する必要はないと思います。 (ssh-agent から秘密鍵を)登録解除すると、秘密鍵を利用するときにまたパスフレーズの入力を求められます。
guest

0

権限が緩いので恐らくエラーに0644でパーミッションエラーになっていませんか?

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0644 for '/Users/username/.ssh/id_rsa.pub' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored.

これで権限を変更して再度実行してみてください。

$ chmod 0600 ファイル名

投稿2018/02/08 13:02

編集2018/02/08 15:20
earnest_gay

総合スコア615

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

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

Alt_

2018/02/08 14:22

回答ありがとうございます。 そのエラーはどのコマンド実行時に表示されますでしょうか? あと、0600設定はサーバー側のauthorized_keysファイルのほうで大丈夫ですか?
earnest_gay

2018/02/08 15:21

ssh接続時に出る可能性が高いエラーですよ。 あと回答がずれてるっぽいので下の方の方が参考になるはずです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問