外部記憶装置

脳みそ小さすぎるからメモしとく

Linuxサーバーを再構築した。その2(SSH設定編)

f:id:PiBVT:20180210221118p:plain

SSH設定について

今回はサーバーにDebianをインストールしたので基本的にはSSHでログインし、CUIで作業をすることになります。 SSHでログインをする際、パスワードでログインすることも可能なのですが、セキュリティ的に脆弱なので公開鍵暗号でログインする方法に切り替えます。

作業前に

今回はサーバーのユーザー名をhogeIPアドレスを192.168.100.100として作業します。各自の環境に合わせて変えてください。

PC側の設定

私のメインPCはArch Linuxなので、端末から暗号鍵を生成することができます。 端末から

$ ssh-keygen -t rsa -f debian_server

すると公開鍵と秘密鍵の2つが生成されます。

debian_server  <= 秘密鍵。外部に漏らしてはいけない
debian_server.pub  <= 公開鍵。サーバーに登録する。流出しても多分大丈夫

秘密鍵を.sshフォルダに移動します。

$ mv debian_server ~/.ssh
~/.ssh/config

vimなどのエディタで開き、以下の内容を追記します。(ファイルが存在しない場合は作成してください)

Host DebianServer
           User hoge
           HostName 192.168.100.100
           IdentityFile ~/.ssh/debian_server

Server側の設定

公開鍵をサーバーに送信します。

$ scp debian_server.pub hoge@192.168.100.100:~/

サーバーにSSHでログインします。ログイン後

$ mkdir .ssh
$ chmod 700 .ssh
$ cat debian_server.pub >> .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys
$ rm debian_server.pub

SSHの設定ファイルを編集します。

/etc/ssh/sshd_config

vimなどのエディタで開きます(root権限で開きます)。

#PubkeyAuthentication yes のコメントアウトを削除し、 PubkeyAuthentication yes

とし、保存後、SSHのサービスを再起動します。

$ sudo systemctl restart sshd

PCから登録したエイリアスSSHできることを確認します。

$ ssh DebianServer

ログインできない場合、何らかの設定が間違っているので修正してください。 ログイン後、パスフレーズでのSSHログインを禁止します。

/etc/ssh/sshd_config

の設定ファイルを再び開き、

#PermitRootLogin prohibit-password を PermitRootLogin no に変更
#PasswordAuthentication yes を PasswordAuthentication no に変更

保存後、SSHサービスを再起動

$ sudo systemctl restart sshd

PCからSSHでログインできることを確認します。

SSHのポートを変更する。

セキュリティを高めるために22番ポートから適当な使っていないポートに変更します。 今回は18500番ポートに変更します。

サーバーにログイン後、

/etc/ssh/sshd_config

をrootで開き、

#Port 22 を Port 18500

に変更します。保存後SSHサービスを再起動し、

sudo systemctl restart sshd

サーバー側での作業は終了です。 PC側では、さっき登録したエイリアス

Port 18500

を追記します。こんな感じになります。

Host DebianServer
           User hoge
           HostName 192.168.100.100
           IdentityFile ~/.ssh/debian_server
           Port 18500

保存後、SSHでサーバーにログインできることを確認し、終了です。

次回は、ファイアーウォールUFWのインストールと設定をします。

参考文献

SSHの鍵認証設定