SSH設定について
今回はサーバーにDebianをインストールしたので基本的にはSSHでログインし、CUIで作業をすることになります。 SSHでログインをする際、パスワードでログインすることも可能なのですが、セキュリティ的に脆弱なので公開鍵暗号でログインする方法に切り替えます。
作業前に
今回はサーバーのユーザー名をhoge、IPアドレスを192.168.100.100として作業します。各自の環境に合わせて変えてください。
PC側の設定
私のメインPCはArch Linuxなので、端末から暗号鍵を生成することができます。 端末から
$ ssh-keygen -t rsa -f debian_server
すると公開鍵と秘密鍵の2つが生成されます。
debian_server <= 秘密鍵。外部に漏らしてはいけない debian_server.pub <= 公開鍵。サーバーに登録する。流出しても多分大丈夫
$ 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
$ 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のインストールと設定をします。