「Sshのインストール」の版間の差分
Rin-scrooge (トーク | 投稿記録) (ページの作成:「手順化するまでもないかなとも思いつつ…<br/> 細かい設定までは調べたことがなかったので、設定の情報を含めてインストー…」) |
Rin-scrooge (トーク | 投稿記録) |
||
(同じ利用者による、間の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=" | + | <dd>ssh接続するポート番号を指定します。<syntaxhighlight lang="text">#9022番ポートで接続したい場合 |
Port 9022</syntaxhighlight></dd> | Port 9022</syntaxhighlight></dd> | ||
<dt>PermitRootLogin</dt> | <dt>PermitRootLogin</dt> | ||
− | <dd>rootアカウントでのログインの可/不可を設定します。<syntaxhighlight lang=" | + | <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=" | + | <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=" | + | <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> | + | <dd>x11ポートフォワードの可/不可を設定します。<syntaxhighlight lang="text">#x11ポートフォワードを許可する場合 |
X11Forwarding yes | X11Forwarding yes | ||
− | # | + | #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=" | + | <syntaxhighlight lang="text">Enter file in which to save the key (/home/test/.ssh/id_rsa):</syntaxhighlight> |
次にパスフレーズ(パスワードみたいなものです)を聞かれるので、任意の文字列を設定します。 | 次にパスフレーズ(パスワードみたいなものです)を聞かれるので、任意の文字列を設定します。 | ||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="text">Enter passphrase (empty for no passphrase):</syntaxhighlight> |
再入力が求められるので、同じパスフレーズを入力します。 | 再入力が求められるので、同じパスフレーズを入力します。 | ||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="text">Enter same passphrase again:</syntaxhighlight> |
以下のように表示されれば、OKです。 | 以下のように表示されれば、OKです。 | ||
− | <syntaxhighlight lang=" | + | <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=" | + | <syntaxhighlight lang="text">#PubkeyAuthentication yes</syntaxhighlight> |
【修正後】 | 【修正後】 | ||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="text">PubkeyAuthentication yes</syntaxhighlight> |
128行目: | 128行目: | ||
ログインできたら、改めて「/etc/ssh/sshd_config」ファイルを編集してパスワード認証を無効にします。<br/> | ログインできたら、改めて「/etc/ssh/sshd_config」ファイルを編集してパスワード認証を無効にします。<br/> | ||
【修正前】 | 【修正前】 | ||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="text">#PasswordAuthentication yes</syntaxhighlight> |
【修正後】 | 【修正後】 | ||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="text">PasswordAuthentication no</syntaxhighlight> |
143行目: | 143行目: | ||
rootでのログインも無効にします。<br/> | rootでのログインも無効にします。<br/> | ||
【修正前】 | 【修正前】 | ||
− | <syntaxhighlight lang=" | + | <syntaxhighlight lang="text">##PermitRootLogin prohibit-password</syntaxhighlight> |
【修正後】 | 【修正後】 | ||
− | <syntaxhighlight lang=" | + | <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