質問: 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を使用しています
回答: >4. 一般ユーザのホームディレクトリ配下に/.ssh/authorized_keysディレクトリを追加 >(cat id_rsa.pub > /home/user/.ssh/authorized_keys) ディレクトリじゃなくてファイルなんですが...。 書かれたコマンドでは正しいみたいですから大丈夫...かな? # ちなみに、既存の公開鍵が登録されている場合を考慮するならば、リダイレクトは # > /home/user/.ssh/authorized_keys ではなく # >> /home/user/.ssh/authorized_keys として「追記」にすべきかと。 # まぁ、私はviと端末の機能でペーストして追加していますが。 # telnetなり、パスワード認証のssh接続なり、別の公開鍵認証でのssh接続だったりで接続済みの状態からなので。 >クライアントのteratermを使って秘密鍵でアクセスしようとしたところ、 >「ssh2秘密鍵の読み込みに失敗しました」という添付画像のような >メッセージが出ます。 画像つぶれててエラーメッセージは判別できませんが... 「"ssh2秘密鍵の読み込みに失敗しました" ttssh」で検索するといくつか出てきますね。 puttyで作成した秘密鍵ファイルを指定している。 ってのがあったりしますが、今回はteratermで作成しているので該当しませんね。 あとは...パスフレーズが間違っている。とかですかね。 # 適当に秘密鍵作って、パスフレーズを"test"に設定、自宅サーバへの接続で鍵認証にしてパスフレーズに"aa"と入力すると、error:06065064で出ましたね。 過去の回答例ではパスフレーズとログインパスワードを同じにしたら...なんてのがありましたが...本質的には関係ないはずです。 # パスフレーズは秘密鍵の解読に必要なので接続先ホストに登録してあるパスワードが云々の前段階でしかないので。 # 実際、ウチで動いているサーバの1つがそういうパスフレーズになっていたりします。 ということで、パスフレーズの入力間違いがないかもう一度よく確認して下さい。 # teratermで秘密鍵のパスフレーズ変更ってどうやるんだろう? # 普段はpoderosa使いなのでよくわからん。まぁ困ってないからいいけど。 あとは...秘密鍵ファイルが壊れたとか、osの何らかの制限によりアクセスが禁止された...とか。 # 書き出せたならそんなことはないと思いますが、書き出したファイルを移動なりさせた...ということだと、もしかしたらntfsのアクセス権関係で問題が出る場合もあるかも知れません。 # 自分のユーザのドキュメントフォルダとかに置くことをお勧めしますね。