メインメニューを開く

差分

Sshのインストール

7,901 バイト追加, 2019年7月19日 (金) 17:30
ページの作成:「手順化するまでもないかなとも思いつつ…<br/> 細かい設定までは調べたことがなかったので、設定の情報を含めてインストー…」
手順化するまでもないかなとも思いつつ…<br/>
細かい設定までは調べたことがなかったので、設定の情報を含めてインストールしてみます。

= インストール =
以下のコマンドを実行します。
<syntaxhighlight lang="bash">pacman -S openssh</syntaxhighlight>

だーっと、インストールされます。<br/>
インストール自体はこれで完了ですが…<br/>
この状態ではssh接続できないので、サービスを起動します。
<syntaxhighlight lang="bash">systemctl start sshd
systemctl enable sshd</syntaxhighlight>
念のため、正常に起動しているか確認します。
<syntaxhighlight lang="bash">systemctl status sshd</syntaxhighlight>
「active (running)」と表示されていれば正常に起動しています。

= 設定 =
セキュリティを加味して、ポート番号など変更したい場合があるかと思います。<br/>
その場合、「/etc/ssh/sshd_config」ファイルで設定します。<br/>
基本的デフォルトの設定で動作しますので、変更したい場合は「sshd_config」内でコメントを外して設定します。

以下、私がよく変更する設定項目だけ上げていきます。

<dl>
<dt>Port</dt>
<dd>ssh接続するポート番号を指定します。<syntaxhighlight lang="bash">#9022番ポートで接続したい場合
Port 9022</syntaxhighlight></dd>
<dt>PermitRootLogin</dt>
<dd>rootアカウントでのログインの可/不可を設定します。<syntaxhighlight lang="bash">#rootアカウントでのログインを許可する場合
PermitRootLogin yes

#rootアカウントでのログインを許可しない場合
PermitRootLogin no</syntaxhighlight></dd>
<dt>PubkeyAuthentication</dt>
<dd>公開鍵・秘密鍵を使用したログインの可/不可を設定します。<syntaxhighlight lang="bash">#公開鍵・秘密鍵を使用したログインを許可する場合
PubkeyAuthentication yes

#公開鍵・秘密鍵を使用したログインを許可しない場合
PubkeyAuthentication no</syntaxhighlight></dd>
<dt>PasswordAuthentication</dt>
<dd>パスワードによるログインの可/不可を設定します。<syntaxhighlight lang="bash">#パスワードによるログインを許可する場合
PasswordAuthentication yes

#パスワードによるログインを許可しない場合
PasswordAuthentication no</syntaxhighlight></dd>
<dt>X11Forwarding</dt>
<dd>X11ポートフォワードの可/不可を設定します。<syntaxhighlight lang="bash">#X11ポートフォワードを許可する場合
X11Forwarding yes

#X11ポートフォワードを許可しない場合
X11Forwarding no</syntaxhighlight></dd>
</dl>

= 公開鍵・秘密鍵を使用して接続する =
セキュリティを加味して公開鍵・秘密鍵(鍵ペア)を作成して、認証する設定に変更します。<br/>
パスワード認証でもそれなりに長いパスワードにすれば良いのかもしれませんが、[https://ja.wikipedia.org/wiki/%E7%B7%8F%E5%BD%93%E3%81%9F%E3%82%8A%E6%94%BB%E6%92%83 ブルートフォースアタック]をされたりすれば、安全とは言い切れません。<br/>
鍵ペアを使用した認証は、「公開鍵をサーバーに設定」「秘密鍵を接続するクライアントに配布」することで、秘密鍵を持っているクライアントしか接続できなくなります。<br/>
秘密鍵を厳密に管理すれば、理論上安全と言えます。<br/>

以下の手順は実は手を抜いて、秘密鍵をサーバー側で作成しています。<br/>
(厳密に言えば、秘密鍵は秘密にしたいわけで…ネットワーク上に流すのははばかられます…)<br/>
なので、以下の手順は「まぁ…そこまでは気にしないよ」という方向けですwww。


以下のコマンドで鍵ペアを生成します。
<syntaxhighlight lang="bash">ssh-keygen -t rsa -b 4096</syntaxhighlight>


鍵ペアの格納先を聞かれたら、任意に指定します。<br/>
(デフォルトでいい場合は、何も入力せずにEnterキーを押します)
<syntaxhighlight lang="bash">Enter file in which to save the key (/home/test/.ssh/id_rsa):</syntaxhighlight>


次にパスフレーズ(パスワードみたいなものです)を聞かれるので、任意の文字列を設定します。
<syntaxhighlight lang="bash">Enter passphrase (empty for no passphrase):</syntaxhighlight>


再入力が求められるので、同じパスフレーズを入力します。
<syntaxhighlight lang="bash">Enter same passphrase again:</syntaxhighlight>


以下のように表示されれば、OKです。
<syntaxhighlight lang="bash">Your identification has been saved in /home/test/.ssh/id_rsa.
Your public key has been saved in /home/test/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX test@arch
The key's randomart image is:
+---[RSA 4096]----+
| |
| |
| |
| |
| |
| |
| |
| |
| |
+----[SHA256]-----+</syntaxhighlight>


以下のコマンドで、公開鍵の情報を設定します。
<syntaxhighlight lang="bash">cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys</syntaxhighlight>


次に秘密鍵(~/.ssh/id_rsa)をUSBメモリ等を利用してネットワークを経由させないで、どうにかクライアントに持ってきます。<br/>
(秘密鍵は削除したほうが良いのかな???インナーロック状態だから、JAF呼ばないと開けられないけどwww)<br/>
クライアント側は、ターミナルアプリに依存するのでググってください…


次に「/etc/ssh/sshd_config」ファイルを編集してsshの設定を変更します。<br/>
上の、sshの設定で大体予想は付くと思いますが…<br/>
一気に設定せずに、確認しながら進めます。


先ずは、コメントを外して公開鍵認証を有効にします。<br/>
【修正前】
<syntaxhighlight lang="bash">#PubkeyAuthentication yes</syntaxhighlight>
【修正後】
<syntaxhighlight lang="bash">PubkeyAuthentication yes</syntaxhighlight>


以下のコマンドで設定変更を反映させます。
<syntaxhighlight lang="bash">systemctl reload sshd</syntaxhighlight>


反映したら、sshでログインしてみます。<br/>
ログインできたら、改めて「/etc/ssh/sshd_config」ファイルを編集してパスワード認証を無効にします。<br/>
【修正前】
<syntaxhighlight lang="bash">#PasswordAuthentication yes</syntaxhighlight>
【修正後】
<syntaxhighlight lang="bash">PasswordAuthentication no</syntaxhighlight>


以下のコマンドで設定変更を反映させます。
<syntaxhighlight lang="bash">systemctl reload sshd</syntaxhighlight>


パスワードでログインしようとしてエラーになればOKです。


ついでと言ってはなんですが…<br/>
rootでのログインも無効にします。<br/>
【修正前】
<syntaxhighlight lang="bash">##PermitRootLogin prohibit-password</syntaxhighlight>
【修正後】
<syntaxhighlight lang="bash">PermitRootLogin no</syntaxhighlight>


以下のコマンドで設定変更を反映させます。
<syntaxhighlight lang="bash">systemctl reload sshd</syntaxhighlight>

= 参考サイト =
[https://qiita.com/3no3_tw/items/4b5975a9f3087edf4e20 Raspberry Pi3のLAN外からのSSH接続設定方法 - Qiita]<br/>
[https://qiita.com/suthio/items/2760e4cff0e185fe2db9 お前らのSSH Keysの作り方は間違っている - Qiita]<br/>

[[Category:ssh]]
[[Category:ArchLinux]]
[[Category:鍵認証]]
{{DISPLAYTITLE:sshのインストール}}