Code

リモートサーバにSSHで接続する

キーペアの作成

ローカルマシンで、キーペアを作成します。

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

-Code

© 2024 トンボのようにまっすぐ進んでいたい Powered by AFFINGER5