SSHでファイル認証Qaplaの覚書・メモ・備忘録・独言プログラミングやサーバ設定などの覚え書きを中心に書いています。デフォルトで「pi」ユーザがあることが知られている。総当りされたらマグレでログインできてしまうかもしれない。ここは、特定のファイルを持っているユーザでしかログインできないようにしておこう。Pi側のSSHの設定。以下の3行を変更した。「PermitRootLogin」でルートユーザでのログインを無効。「AuthorizedKeysFile」でファイルを指定。「PasswordAuthentication」でパスワード認証禁止。no次は、認証用ファイルの作成。ログインするユーザのホームディレクトリで「ssh-keygen」を使う。+o+=|+-----------------+これでファイルが「.ssh」ディレクトリの中にできているはずなので確認。「id_rsa」が秘密鍵、「id_rsa.pub」が公開鍵だ。id_rsa.pub「.ssh」フォルダの中の「id_rsa.pub」(公開鍵)を、SSHの設定で指定したファイル名に変更する。ついでに、他のユーザが読み書きできないようにしておく。Piを再起動しておこう。authorized_keys次は、SSHで接続するソフト側の設定を行う。私は、SSH接続に「PuTTY」を使っているので、これで設定を行う。作った「id_rsa」(秘密鍵)を「puttygen.exe」に読み込ませて、PuTTY用のファイルに変換する。Term」などを使う場合は、「id_rsa」ファイル自体を使えるので、この手順は不要です。古いPuTTYでは「秘密鍵を読み込めませんでした。supported)」というエラーで失敗した。Page)の「puttygen.exe」を使おう。ファイルを作ったときに入力したパスワードを入力する。key」をクリックして秘密鍵を保存する。このファイルが、SSH接続に必要なファイルになるので無くさないように注意。後はPuTTYを起動して、SSHの認証で作成したファイルを使うように設定を変える。設定の場所は「接続」⇒「SSH」⇒「認証」の中にある。相対パスで指定しても良いようだ。設定できたらPuTTYでつないでみる。keyを入力しろ、と言われた。このパスワードとは「id_rsa」ファイルを作ったときのパスワードだ。piユーザのパスワードではない。これで、ファイルを使って認証されるようになった。Piで作成した「id_rsa」ファイルでログインできる。@コメント逆ですここに書かれている方法はやり方が逆です。鍵のペアを作るのはログインする方(この場合はWindows)です。生成した*公開鍵*をログイン先(この場合はRaspberryPI)にコピーするのです。ここに書かれた方法でもログインはできますが、秘密鍵をネットワーク経由で転送することになり、公開鍵アクセスを導入する主旨に反します。titleコメントをありがとうございます。「公開鍵」というネーミングがそう感じさせるかもしれませんが、逆ではありません。動作を考えると、公開鍵はサーバ側に、秘密鍵はクライアント側に置くこの方法が正常です。秘密鍵(絶対に知られてはいけない鍵)をネットワーク経由で転送したら第三者に読み取られる危険があるということだと思います。示されたURLでもクライアント側で鍵を生成し、公開鍵の情報をサーバ側に渡す例が一連の記事の中で示されています。タイトルなしコメントをありがとうございます。側で鍵生成をする手順を記事にしました。鍵の転送は、SDカードを直接Windowsでマウントして転送すれば問題ありません。目次プロフィールAuthor:QaplaJava、PHP関連のシステム作ったりサーバ構築やったり講師やったりしてます。(02/25)Windowsユーザのパスワードが消せない。