「設定 - SSHの公開鍵認証」の版間の差分

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動
編集の要約なし
69行目: 69行目:
<br><br>
<br><br>


== rootログインの禁止 ==
== SSHの設定変更 ==
SSH接続時、rootユーザでのログインを禁止するため、以下のコマンドを実行する。<br>
以下のコマンドを入力して、/etc/ssh/sshd_configファイルを開く。<br>
  sudo nano /etc/ssh/sshd_config
  sudo vi /etc/ssh/sshd_config
テキストエディタに切り替わるので、一番下に以下のコードを追加して保存する。<br>
<br>
SSHでの接続において、rootユーザでのログインを禁止するため、最下行に以下の設定を追記する。<br>
  PermitRootLogin no
  PermitRootLogin no
<br><br>
== SSHの設定変更 ==
以下のコマンドを入力して、sshd_configファイルを開く。<br>
sudo nano /etc/ssh/sshd_config
<br>
<br>
<nowiki>#</nowiki>PasswordAuthentication yesの下の行に、PasswordAuthentication noを追加して保存する。<br>
公開鍵でログインできるようにするため、以下の設定を編集する。<br>
PubkeyAuthentication  yes
<br>
パスワード認証を行わない場合、以下の設定を追記する。<br>
PermitEmptyPasswords項目において、SSHD_CONFIG(5)によると、このオプションはパスワード認証が有効な時にしか影響しないため、<br>
公開鍵認証を行う場合は、パスワードの有無は問われないため、コメントアウトのままでよい。<br>
# PasswordAuthentication yes
PasswordAuthentication no
[[ファイル:Raspberry-Pi-SSH-Config-04.png|フレームなし|中央]]
[[ファイル:Raspberry-Pi-SSH-Config-04.png|フレームなし|中央]]
<br>
<br>

2021年4月8日 (木) 21:18時点における版

概要

パスワードでのログインはランダムで試すことで突破されることもあるので、セキュリティを向上させるため公開鍵認証を行う。
公開鍵認証は秘密鍵を持つ人だけがログイン出来るようになる設定である。


公開鍵と秘密鍵の作成

CentOS / SUSE

CentOSおよびSUSEには、標準でOpenSSHがインストールされている。

秘密鍵と公開鍵を作成するため、以下のコマンドを実行する。

ssh-keygen -t rsa -b 4096

# 公開鍵および秘密鍵の入力
Generating public/private rsa key pair.
Enter file in which to save the key (/home/${ユーザ名}/.ssh/id_rsa):     # 空(標準ディレクトリ)または任意のパスを入力
Enter passphrase (empty for no passphrase):                              # パスフレーズを入力(空の場合はパスフレーズ無しとなる)
Enter same passphrase again:                                              # パスフレーズを再入力
Your identification has been saved in /home/${ユーザ名}/.ssh/id_rsa.
Your public key has been saved in /home/${ユーザ名}/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:KUTA1tKak8l0ibHGqq4XWOPgRKfyRCfeBGxrWssdPoY ssh_client
The key's randomart image is:
+---[RSA 4096]----+
| ..oo*..         |
| .=oOo=          |
|.+oX+B.          |
|ooOoX.   .       |
|+%.* o. S        |
|ooE =  .         |
|.  o .           |
|. .              |
|oo               |
+----[SHA256]-----+


Windows

Windows 10には、標準でOpenSSHがインストールされているが、ここでは、TeraTermを使用する。

TeraTermを起動して、[設定]-[SSH鍵生成] をクリックする。

Raspberry-Pi-SSH-Config-01.png


[鍵の種類]はRSAを選択する。
[ビット数]は2048を入力して、[生成]ボタンを押下すると、鍵を生成しましたと出力される。

Raspberry-Pi-SSH-Config-02.png


[鍵のパスフレーズ]と[パスフレーズの確認]にパスワードを入力する。
[公開鍵の保存](id_rsa.pubファイル)と[秘密鍵の保存](id_rsaファイル)をクリックして、
それぞれの鍵をクライアントPCの任意のフォルダに保存する。

  • 注意
鍵のパスフレーズ無しの場合は秘密鍵だけでログインする。
この設定完了後に秘密鍵(id_rsa)を紛失するとログイン出来なくなるため気をつけること。
また、秘密鍵が第三者に漏洩すると、ラズパイにログインされてしまうので厳重に保管すること。
Raspberry-Pi-SSH-Config-03.png



公開鍵の設定

SSHサーバのホームディレクトリに.sshディレクトリを作成して、パーミッションを変更する。

mkdir ~/.ssh 
chmod 700 ~/.ssh


.sshディレクトリ内に、公開鍵ファイルであるauthorized_keysファイルを作成する。

touch ~/.ssh/authorized_keys

上記のセクションで生成したid_rsa.pubファイル(公開鍵ファイル)の内容を、authorized_keysファイルにコピーする。

nano ~/.ssh/authorized_keys
または
cat id_rsa.pub >> ~/.ssh/authorized_keys


authorized_keysファイルのパーミッションを変更する。

chmod 600 ~/.ssh/authorized_keys



SSHの設定変更

以下のコマンドを入力して、/etc/ssh/sshd_configファイルを開く。

sudo vi /etc/ssh/sshd_config


SSHでの接続において、rootユーザでのログインを禁止するため、最下行に以下の設定を追記する。

PermitRootLogin no


公開鍵でログインできるようにするため、以下の設定を編集する。

PubkeyAuthentication   yes


パスワード認証を行わない場合、以下の設定を追記する。
PermitEmptyPasswords項目において、SSHD_CONFIG(5)によると、このオプションはパスワード認証が有効な時にしか影響しないため、
公開鍵認証を行う場合は、パスワードの有無は問われないため、コメントアウトのままでよい。

# PasswordAuthentication yes
PasswordAuthentication no
Raspberry-Pi-SSH-Config-04.png


以下のコマンドを入力して、SSHを再起動する。

sudo systemctl restart sshd


これでパスワードログインが出来なくなり、秘密鍵を持っている人だけがログイン出来るようになる。


ターミナル等から接続

RLoginやTera Termを使用せずに、ターミナル等からSSH接続する場合は、以下のようなコマンドを実行する。

ssh -p <ポート番号> -i /<秘密鍵を保存しているディレクトリ>/id_rsa <ユーザ名>@<ホスト名またはIPアドレス>


上記のようなコマンドを簡潔に記述する場合、クライアントに~/.ssh/configファイルを作成する。

vi ~/.ssh/config

# ~/.ssh/configファイル
Host <任意の名前>
   # ホスト名
   HostName <ホスト名またはIPアドレス>

   # ポート番号
   Port <ポート番号>

   # ユーザー名
   User <サーバのユーザ名>

   # 暗号鍵ファイルのパス
   IdentityFile <暗号鍵ファイルのパス>


以下のように、コマンドを簡潔に記述できる。

ssh <任意の名前>