お兄ちゃん!
macOS のノート PC があるんだけど
ここからでも
SSH 公開鍵認証で
接続できるかな?
もちろん!
まずは必要となる二つの鍵
「秘密鍵」「公開鍵」を作ろう!
macOS と Linux では
操作がほとんど同じなので
一緒に説明するね
.ssh
ディレクトリ
SSH 設定は
~/.ssh
ディレクトリに保存されるよ
まずはこのディレクトリが
あるかどうかを確認しよう
ls -ld ~/.ssh
うん!
drwx------. 2 midori midori 71 Dec 1 14:53 /home/midori/.ssh
ちゃんとあるみたいだね!
もし存在していなければ作ってあげよう
mkdir ~/.ssh
そうしたらパーミッションを確認しよう自身しかアクセスできないようになっていればいいよ
rwx------
だね!所有グループや他のユーザには何も権限が無いよ!もしそうでないなら
chmod
でパーミッションを設定しよう!chmod 700 ~/.ssh
ssh-keygen
コマンドssh-keygen
はSSH 鍵を生成するよssh-keygen [オプション]...
オプション | 役割 |
---|---|
-f パス | 鍵の出力先を指定(RSAの場合デフォルトは ~/.ssh/id_rsa ) |
-C コメント | 鍵にコメントを設定 |
-P パスフレーズ | パスフレーズを設定(空文字でパスフレーズを設定しない) |
コメントは何に使うのかな?
複数の鍵を生成したときに鍵の区別をつけるために使われるよ「ユーザ名」「接続先」の 2つの情報を含めておくのがいいね僕は
ユーザ名@接続先
としているよパスフレーズを設定するとどうなるのかな?
鍵を使おうとするたびにパスフレーズの入力が求められるよそこで正しいパスフレーズを入力しないと鍵が使えないんだ設定すると毎回入力の手間が掛かるけど鍵が漏洩したときの対策になるんだ
なるほど自宅内で使う想定で毎回尋ねられるのも面倒だから今回は設定しなくてもいいと思っているよ!
ここでは以下のように作成しよう!
接続先ホスト名
の箇所は実際の値に置き換えてね私の場合は
DEST=carter
となるんだね!DEST=接続先ホスト名
ssh-keygen -f "$HOME/.ssh/$USER@${DEST}_id_rsa" -C "$USER@$DEST" -P ""
変数を上手く使っているんだね!
上記のコマンドを実行すると「秘密鍵」と「公開鍵」が 生成されるんだ
パス | 役割 |
---|---|
~/.ssh/ユーザ名@接続先_id_rsa | 秘密鍵 |
~/.ssh/ユーザ名@接続先_id_rsa.pub | 公開鍵 |
これで準備ができたんだね!
今回は macOS や Linux でSSH 鍵を生成したよ!公開鍵認証でリモート接続するための第一歩なんだ!
この鍵を使うには接続先にも設定が必要なんだ次回は接続先で行う設定を説明するよ!