Contents
キーペアの作成
ローカルマシンで、キーペアを作成します。
ssh-keygen
-tオプション
で指定することで任意の暗号方式を選ぶことができます。(dsa,ecdsa,ed25519,rsa,rsa1から選べます。)
デフォルトではRSA暗号になります。
// rsa1暗号の場合
ssh-keygen -t rsa1
キーペアの保存先を聞かれます。
Macの場合は、デフォルトの/Users/[ユーザ名]/.ssh/id_rsa
となります。
OKならそのままEnterします。
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/[ユーザ名]/.ssh/id_rsa):
パスフレーズを聞かれるので、入力します。
設定しない場合は、そのままEnterします。
Enter passphrase (empty for no passphrase):🔑
キーペアが作成されます。
id_rsaが秘密鍵、id_rsa.pubが公開鍵です。
ls -la ~/.ssh
-rw------- 1 hogehoge staff 2622 5 30 10:50 id_rsa
-rw-r--r-- 1 hogehoge staff 582 5 30 10:50 id_rsa.pub
パーミッションの設定
秘密鍵、公開鍵ともにパーミッションを600に設定します。
chmod 600 id_rsa
chmod 600 id_ras.pub
以下のようになっていればOKです。
ls -la
-rw------- 1 hogehoge staff 2622 5 30 10:50 id_rsa
-rw------- 1 hogehoge staff 582 5 30 10:50 id_rsa.pub
リモートサーバの設定
公開鍵をリモートサーバに設置
作成したキーペアのうち、scpなどで公開鍵をリモートサーバに転送します。
このとき、誤って秘密鍵を転送しないように注意してください。
秘密鍵は漏洩しないようにしっかりと管理しましょう。
scp ~/.ssh/id_rsa.pub [ユーザ名]@[リモートサーバのホスト名]:~/.ssh/authorized_keys
sshd_configの設定
ここからは、リモートサーバでの作業です。
パスワード認証等でログインした状態で進めてください。
sshフォルダのパーミッションは700に設定しておきます。
ssh [ユーザ名]@[リモートサーバのホスト名]
chmod 700 ~/.ssh
/etc/ssh/sshd_config
設定を変更していきます。
ここでは、セキュリティ強化の観点から以下を設定します。
- rootユーザでのログイン禁止
- パスワードログインの禁止
- ログインユーザの指定
PermitRootLogin no
PasswordAuthentication no
AllowUsers [ログインを許可するユーザ]
sshdの再起動
sshdを再起動します。
sudo systemctl restart sshd
SSH接続確認
ローカルマシンからSSH接続を確認します。
ssh -i ~/.ssh/id_rsa [ユーザ名]@[リモートサーバのホスト名]
ログインできれば成功です。
SSH接続の度にコマンドを打ち込むのは面倒なので、configファイルに記述することをおすすめします。
Host mysite
HostName [リモートサーバのホスト名]
User [ユーザ名]
Port 22
IdentityFile ~/.ssh/id_rsa
これで、以下のコマンドでSSH接続ができるようになります。
ssh mysite