「Sshのインストール」の版間の差分

提供: とある社畜の頭脳整理
ナビゲーションに移動 検索に移動
(ページの作成:「手順化するまでもないかなとも思いつつ…<br/> 細かい設定までは調べたことがなかったので、設定の情報を含めてインストー…」)
 
 
(同じ利用者による、間の3版が非表示)
2行目: 2行目:
 
細かい設定までは調べたことがなかったので、設定の情報を含めてインストールしてみます。
 
細かい設定までは調べたことがなかったので、設定の情報を含めてインストールしてみます。
  
= インストール =
+
== インストール ==
 
以下のコマンドを実行します。
 
以下のコマンドを実行します。
 
<syntaxhighlight lang="bash">pacman -S openssh</syntaxhighlight>
 
<syntaxhighlight lang="bash">pacman -S openssh</syntaxhighlight>
15行目: 15行目:
 
「active (running)」と表示されていれば正常に起動しています。
 
「active (running)」と表示されていれば正常に起動しています。
  
= 設定 =
+
== 設定 ==
 
セキュリティを加味して、ポート番号など変更したい場合があるかと思います。<br/>
 
セキュリティを加味して、ポート番号など変更したい場合があるかと思います。<br/>
 
その場合、「/etc/ssh/sshd_config」ファイルで設定します。<br/>
 
その場合、「/etc/ssh/sshd_config」ファイルで設定します。<br/>
24行目: 24行目:
 
<dl>
 
<dl>
 
<dt>Port</dt>
 
<dt>Port</dt>
<dd>ssh接続するポート番号を指定します。<syntaxhighlight lang="bash">#9022番ポートで接続したい場合
+
<dd>ssh接続するポート番号を指定します。<syntaxhighlight lang="text">#9022番ポートで接続したい場合
 
Port 9022</syntaxhighlight></dd>
 
Port 9022</syntaxhighlight></dd>
 
<dt>PermitRootLogin</dt>
 
<dt>PermitRootLogin</dt>
<dd>rootアカウントでのログインの可/不可を設定します。<syntaxhighlight lang="bash">#rootアカウントでのログインを許可する場合
+
<dd>rootアカウントでのログインの可/不可を設定します。<syntaxhighlight lang="text">#rootアカウントでのログインを許可する場合
 
PermitRootLogin yes
 
PermitRootLogin yes
  
33行目: 33行目:
 
PermitRootLogin no</syntaxhighlight></dd>
 
PermitRootLogin no</syntaxhighlight></dd>
 
<dt>PubkeyAuthentication</dt>
 
<dt>PubkeyAuthentication</dt>
<dd>公開鍵・秘密鍵を使用したログインの可/不可を設定します。<syntaxhighlight lang="bash">#公開鍵・秘密鍵を使用したログインを許可する場合
+
<dd>公開鍵・秘密鍵を使用したログインの可/不可を設定します。<syntaxhighlight lang="text">#公開鍵・秘密鍵を使用したログインを許可する場合
 
PubkeyAuthentication yes
 
PubkeyAuthentication yes
  
39行目: 39行目:
 
PubkeyAuthentication no</syntaxhighlight></dd>
 
PubkeyAuthentication no</syntaxhighlight></dd>
 
<dt>PasswordAuthentication</dt>
 
<dt>PasswordAuthentication</dt>
<dd>パスワードによるログインの可/不可を設定します。<syntaxhighlight lang="bash">#パスワードによるログインを許可する場合
+
<dd>パスワードによるログインの可/不可を設定します。<syntaxhighlight lang="text">#パスワードによるログインを許可する場合
 
PasswordAuthentication yes
 
PasswordAuthentication yes
  
45行目: 45行目:
 
PasswordAuthentication no</syntaxhighlight></dd>
 
PasswordAuthentication no</syntaxhighlight></dd>
 
<dt>X11Forwarding</dt>
 
<dt>X11Forwarding</dt>
<dd>X11ポートフォワードの可/不可を設定します。<syntaxhighlight lang="bash">#X11ポートフォワードを許可する場合
+
<dd>x11ポートフォワードの可/不可を設定します。<syntaxhighlight lang="text">#x11ポートフォワードを許可する場合
 
X11Forwarding yes
 
X11Forwarding yes
  
#X11ポートフォワードを許可しない場合
+
#x11ポートフォワードを許可しない場合
 
X11Forwarding no</syntaxhighlight></dd>
 
X11Forwarding no</syntaxhighlight></dd>
 
</dl>
 
</dl>
  
= 公開鍵・秘密鍵を使用して接続する =
+
== 公開鍵・秘密鍵を使用して接続する ==
 
セキュリティを加味して公開鍵・秘密鍵(鍵ペア)を作成して、認証する設定に変更します。<br/>
 
セキュリティを加味して公開鍵・秘密鍵(鍵ペア)を作成して、認証する設定に変更します。<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/>
 
パスワード認証でもそれなりに長いパスワードにすれば良いのかもしれませんが、[https://ja.wikipedia.org/wiki/%E7%B7%8F%E5%BD%93%E3%81%9F%E3%82%8A%E6%94%BB%E6%92%83 ブルートフォースアタック]をされたりすれば、安全とは言い切れません。<br/>
69行目: 69行目:
 
鍵ペアの格納先を聞かれたら、任意に指定します。<br/>
 
鍵ペアの格納先を聞かれたら、任意に指定します。<br/>
 
(デフォルトでいい場合は、何も入力せずにEnterキーを押します)
 
(デフォルトでいい場合は、何も入力せずにEnterキーを押します)
<syntaxhighlight lang="bash">Enter file in which to save the key (/home/test/.ssh/id_rsa):</syntaxhighlight>
+
<syntaxhighlight lang="text">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="text">Enter passphrase (empty for no passphrase):</syntaxhighlight>
  
  
 
再入力が求められるので、同じパスフレーズを入力します。
 
再入力が求められるので、同じパスフレーズを入力します。
<syntaxhighlight lang="bash">Enter same passphrase again:</syntaxhighlight>
+
<syntaxhighlight lang="text">Enter same passphrase again:</syntaxhighlight>
  
  
 
以下のように表示されれば、OKです。
 
以下のように表示されれば、OKです。
<syntaxhighlight lang="bash">Your identification has been saved in /home/test/.ssh/id_rsa.
+
<syntaxhighlight lang="text">Your identification has been saved in /home/test/.ssh/id_rsa.
 
Your public key has been saved in /home/test/.ssh/id_rsa.pub.
 
Your public key has been saved in /home/test/.ssh/id_rsa.pub.
 
The key fingerprint is:
 
The key fingerprint is:
116行目: 116行目:
 
先ずは、コメントを外して公開鍵認証を有効にします。<br/>
 
先ずは、コメントを外して公開鍵認証を有効にします。<br/>
 
【修正前】
 
【修正前】
<syntaxhighlight lang="bash">#PubkeyAuthentication yes</syntaxhighlight>
+
<syntaxhighlight lang="text">#PubkeyAuthentication yes</syntaxhighlight>
 
【修正後】
 
【修正後】
<syntaxhighlight lang="bash">PubkeyAuthentication yes</syntaxhighlight>
+
<syntaxhighlight lang="text">PubkeyAuthentication yes</syntaxhighlight>
  
  
128行目: 128行目:
 
ログインできたら、改めて「/etc/ssh/sshd_config」ファイルを編集してパスワード認証を無効にします。<br/>
 
ログインできたら、改めて「/etc/ssh/sshd_config」ファイルを編集してパスワード認証を無効にします。<br/>
 
【修正前】
 
【修正前】
<syntaxhighlight lang="bash">#PasswordAuthentication yes</syntaxhighlight>
+
<syntaxhighlight lang="text">#PasswordAuthentication yes</syntaxhighlight>
 
【修正後】
 
【修正後】
<syntaxhighlight lang="bash">PasswordAuthentication no</syntaxhighlight>
+
<syntaxhighlight lang="text">PasswordAuthentication no</syntaxhighlight>
  
  
143行目: 143行目:
 
rootでのログインも無効にします。<br/>
 
rootでのログインも無効にします。<br/>
 
【修正前】
 
【修正前】
<syntaxhighlight lang="bash">##PermitRootLogin prohibit-password</syntaxhighlight>
+
<syntaxhighlight lang="text">##PermitRootLogin prohibit-password</syntaxhighlight>
 
【修正後】
 
【修正後】
<syntaxhighlight lang="bash">PermitRootLogin no</syntaxhighlight>
+
<syntaxhighlight lang="text">PermitRootLogin no</syntaxhighlight>
  
  
151行目: 151行目:
 
<syntaxhighlight lang="bash">systemctl reload sshd</syntaxhighlight>
 
<syntaxhighlight lang="bash">systemctl reload sshd</syntaxhighlight>
  
= 参考サイト =
+
== 参考サイト ==
 
[https://qiita.com/3no3_tw/items/4b5975a9f3087edf4e20 Raspberry Pi3のLAN外からのSSH接続設定方法 - Qiita]<br/>
 
[https://qiita.com/3no3_tw/items/4b5975a9f3087edf4e20 Raspberry Pi3のLAN外からのSSH接続設定方法 - Qiita]<br/>
 
[https://qiita.com/suthio/items/2760e4cff0e185fe2db9 お前らのSSH Keysの作り方は間違っている - Qiita]<br/>
 
[https://qiita.com/suthio/items/2760e4cff0e185fe2db9 お前らのSSH Keysの作り方は間違っている - Qiita]<br/>

2019年9月10日 (火) 14:20時点における最新版

手順化するまでもないかなとも思いつつ…
細かい設定までは調べたことがなかったので、設定の情報を含めてインストールしてみます。

インストール

以下のコマンドを実行します。

pacman -S openssh

だーっと、インストールされます。
インストール自体はこれで完了ですが…
この状態ではssh接続できないので、サービスを起動します。

systemctl start sshd
systemctl enable sshd

念のため、正常に起動しているか確認します。

systemctl status sshd

「active (running)」と表示されていれば正常に起動しています。

設定

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

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

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

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

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

#パスワードによるログインを許可しない場合
PasswordAuthentication no
X11Forwarding
x11ポートフォワードの可/不可を設定します。
#x11ポートフォワードを許可する場合
X11Forwarding yes

#x11ポートフォワードを許可しない場合
X11Forwarding no

公開鍵・秘密鍵を使用して接続する

セキュリティを加味して公開鍵・秘密鍵(鍵ペア)を作成して、認証する設定に変更します。
パスワード認証でもそれなりに長いパスワードにすれば良いのかもしれませんが、ブルートフォースアタックをされたりすれば、安全とは言い切れません。
鍵ペアを使用した認証は、「公開鍵をサーバーに設定」「秘密鍵を接続するクライアントに配布」することで、秘密鍵を持っているクライアントしか接続できなくなります。
秘密鍵を厳密に管理すれば、理論上安全と言えます。

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


以下のコマンドで鍵ペアを生成します。

ssh-keygen -t rsa -b 4096


鍵ペアの格納先を聞かれたら、任意に指定します。
(デフォルトでいい場合は、何も入力せずにEnterキーを押します)

Enter file in which to save the key (/home/test/.ssh/id_rsa):


次にパスフレーズ(パスワードみたいなものです)を聞かれるので、任意の文字列を設定します。

Enter passphrase (empty for no passphrase):


再入力が求められるので、同じパスフレーズを入力します。

Enter same passphrase again:


以下のように表示されれば、OKです。

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]-----+


以下のコマンドで、公開鍵の情報を設定します。

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys


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


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


先ずは、コメントを外して公開鍵認証を有効にします。
【修正前】

#PubkeyAuthentication yes

【修正後】

PubkeyAuthentication yes


以下のコマンドで設定変更を反映させます。

systemctl reload sshd


反映したら、sshでログインしてみます。
ログインできたら、改めて「/etc/ssh/sshd_config」ファイルを編集してパスワード認証を無効にします。
【修正前】

#PasswordAuthentication yes

【修正後】

PasswordAuthentication no


以下のコマンドで設定変更を反映させます。

systemctl reload sshd


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


ついでと言ってはなんですが…
rootでのログインも無効にします。
【修正前】

##PermitRootLogin prohibit-password

【修正後】

PermitRootLogin no


以下のコマンドで設定変更を反映させます。

systemctl reload sshd

参考サイト

Raspberry Pi3のLAN外からのSSH接続設定方法 - Qiita
お前らのSSH Keysの作り方は間違っている - Qiita