エンジニアとしてキャリアを積みはじめた頃、基礎中の基礎と言っても過言ではない、「秘密鍵(id_rsa)と公開鍵(id_rsa.pub)を作成して、ssh認証の初期設定をする方法」を紹介します。
コンテンツ
秘密鍵とは
id_rsa
クライアント側で設置をしておく、誰にも教えても渡してもいけない鍵になります。
つまり自分自身が秘密鍵を、/Users/<user名>/.ssh/id_rsa のように設置してsshログインをするときに利用する使い方をします。
公開鍵とは
id_rsa.pub
id_rsa.pubとなるサーバー側に設置をしておく鍵になります。
拡張子が、.pub(public:公開)という覚え方をすればわかりやすいです。
公開鍵は、秘密鍵から作られていて、その秘密鍵と対となることで、高い秘匿性を保持しています。
また現在では公開鍵から秘密鍵を特定するのは不可能とまで言われています。
初期設定手順
鍵の作成
兎にも角にも鍵を作成することから始めます。
今回はMacのターミナルを想定して行っていきます。
1 2 3 4 5 6 7 8 |
% cd % ls -al -rw-r--r-- 1 sample staff 138 6 11 2021 .zshrc drwx------@ 3 sample staff 96 9 8 17:22 Applications drwx------@ 13 sample staff 416 1 5 21:03 Desktop - - - |
この時に、.sshディレクトリがない場合は作成をしておきましょう。
1 2 |
% mkdir .ssh % cd .ssh |
.sshディレクトリに入ったら、以下のコマンドで鍵を作成します。
ssh-keygen -t rsa コマンドを入力すると、Enter passphrase (empty for no passphrase):と聞かれますが、ここは何もせずにエンターで構いません。
ちなみにこれは鍵ファイル自体のパスワードになります。
どうしても設定したい人はパスワードを設定してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
sample@MacBook-Pro .ssh % ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/Users/<ユーザー名>/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /Users/<ユーザー名>/.ssh/id_rsa. Your public key has been saved in /Users/<ユーザー名>/.ssh/id_rsa.pub. The key fingerprint is: SHA256:D0cS09h7eEaeFe4tSfdiS6u3JdJGRSjpDer/9KMfRJA sample@MacBook-Pro.local The key's randomart image is: +---[RSA 3072]----+ | o+ ooo.| | .oo =E+. | | . .B *o.o| | o+ Boo=.| | S..+ O.o| | +. =.= | | ... B..| | .=.=.| | .+=oo| +----[SHA256]-----+ sample@MacBook-Pro .ssh % ls id_rsa id_rsa.pub |
.sshディレクトリに、id_rsaとid_rsa.pubが作成されているのを確認できました。
公開鍵の中身メモ
cat id_rsa.pubコマンドでssh-rsaで始まる中身をコピーしてどこかに一時的に記録をしておきます。
そしてコピーができたら、rmコマンドで削除をしておきます。
1 2 3 4 5 |
% ls id_rsa id_rsa.pub % cat id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABABABgQCedSo1sPhC7fqL0m6gobLAwSdt6vjiKOEg1u/ClLH9orXqiXsceLIucqIO9D5KY3h4JPok5BvOGYS+P6kP8a4YKFmkmSObQG7qn7s06yWKdtS7ipzB4azDToxrvYyaD8UgX1wOM6zl+dimPik/FXqnQv4rm0j0e+js+AIXWWlJmqGjxL98s9LEjxR1aap2t/NqHVPEPo7PpqPD4GZDmVpwG45hk8Au36dcgSzzsps+hNXhyMQL4SGyz8aaydmarChqDG869Epq2U1dYLtKU8RMkhWLxlfL0zSHjXWnYfTAfLL6lG82cH7IGWhbTrwCn8nrJwY3DLydcUCyN1kQKWOaglpJLteaU6G2X25xlYRYM5zgqayk7d+s50sAoYsMJBlqvxI7hNDF6VdLFl0c2lXjk0/UadlhN4VbxFlvrKF3jZqo3n/thJ0jO6Eg234iaF01agi4gZ3uRJ93mbHpiIm9zGe8taeL820Pp5AfJuqZRkj8S19kcrLdtc1SzimH6B8= sample@MacBook-Pro.local % rm id_rsa.pub |
権限の設定
id_rsaとid_rsa.pubが作成されたので、管理権限を付与する必要があります。
きちんと正しく設定しないと必ずPermission denied(接続拒否)されますので、権限の数字の意味(600, 700)も理解した上で設定をしてください。
1 |
% chmod 700 ~/.ssh |
サーバーに渡す
権限の設定もできたら、サーバー側にauthorized_keysファイルを作成し、中身は先ほど% cat id_rsa.pubコマンドで出力したssh-rsaで始まる文字列をペーストしておく必要があります。
前提条件としてパスワード認証や.pemファイル認証で、サーバーに入れることが条件になりますので、サーバーに入っている前提で設定をしていきます。
1 2 3 4 5 6 7 |
$ ls /home/test-user $ mkdir .ssh $ chmod 700 .ssh $ touch .ssh/authorized_keys $ chmod 600 .ssh/authorized_keys $ vi .ssh/authorized_keys |
viの入力モードになったら、「i」をクリックし編集モードになります。
その状態でssh-rsaで始まる文字列をペーストし、最後にescキーを押して:wq!で保存して終了します。
以上で準備ができました。
sshログインを実行する
準備ができたので、.sshディレクトリに戻り、早速ssh接続を試みます。
1 |
% ssh -i id_rsa <ログインユーザー名>@<サーバーアドレス> |
問題なければログインすることができます。
以上。
最後に
いかがでしたでしょうか。
以上が、「秘密鍵(id_rsa)と公開鍵(id_rsa.pub)を作成して、ssh認証の初期設定をする方法」の紹介記事になります。
コメントを残す