ssh公開鍵認証 クライアントの設定について
以下の手順にて公開鍵認証の設定を行う。
何らかの手順でssh接続するサーバを操作できる必要がある為、
サーバ設置後速やかに設定する方が良い。
sshd_config ファイルの内容
を参考にしてサーバの設定を行ったなら、パスワード認証ができるので
この状態でパスワード認証から公開鍵認証へ切り替える。
まずはじめに、公開鍵と秘密鍵の2つを生成する。
この作業はセキュリティ上クライアント側で行い、秘密鍵は通信経路を通さないようにする。
Windowsであれば生成するプログラムをダウンロードして利用する。
多くの場合、sshクライアントソフトがその機能を持っているのでこれを利用する。
ここではLinuxの場合について記入する。
Linuxで、 ssh-keygen コマンドを用いて作成する。
コマンドは次のようなものがある。
- ssh-keygen -t dsa
- ssh-keygen -t rsa
- ssh-keygen -b <ビット数> -t rsa
- ssh-keygen -b 256 -t ecdsa
- ssh-keygen -b 384 -t ecdsa
- ssh-keygen -b 521 -t ecdsa
- ssh-keygen -t ed25519
-t オプションは dsa,rsa,ecdsa,ed25519 を指定する。
-b オプションはビット数を指定します。大きい方がセキュリティが高く、処理は重くなる。
ecdsaを指定した場合、上記の3種類しか指定できない。
rsaを指定した場合、デフォルトで2048ビットであり、それ以上の値を指定できる。
dsaとed25519は指定できない
ecdsaやed25519は楕円曲線を用いた暗号であり解読が困難であるため、サーバが対応していればこれらを選択する。
そうでなければ、dsaやrsaを使用する。できればrsaでビット数の大きいものを選択する。
dsaやrsaはフェルマーの小定理を用いた暗号であり、素因数分解を解くことによって解読される。ビット数は少しでも多いほうが解読が困難になる。
ecdsaやed25519は楕円曲線暗号を用いている。
これは、種数1の代数多様体に群構造が定義できることを用いて作られている。どんな集合にも自然に群構造が定義できるわけではないので、ビット数が固定されているのかもしれない。
[参考] SSH-KEYGEN 日本語マニュアルページ
生成されたファイルは .ssh/ ディレクトリ内に格納される。
拡張子pubのファイルが公開鍵なのでこれをsshサーバへ送る。
sftpを用いる場合
sftp <サーバ名またはIPアドレス>
でログインしファイルを置いてくる。操作に困れば、help (または ?)コマンドで確認する。
scp を用いる場合
scp <送るファイル名> <送信先ユーザ名>@<サーバ名またはIPアドレス>:~/
この場合、送信先ユーザのホームディレクトリに入るが置かれる。
[参考] SFTP 日本語マニュアルページ SCP 日本語マニュアルページ
公開鍵ファイルをサーバー側においたら、ログインをしファイルの中身を
~/.ssh/authorized_keys
に追加する。
コメント
コメントを投稿