どっかの元高専生の技術備忘録

10割自分の備忘録用のブログ。

LinuxでSSHサーバーを建てる

目次

環境

Linux Mint 19 MATEでやっています。基本的には同じ感じだと思う。

必要なパッケージのインストール

SSHサーバーを建てるのに必要なopenssh-serverをインストールします。
端末で以下のコマンドを実行してください。

$ sudo apt update
$ sudo apt install openssh-server

SSHデーモンが起動していることを確認する

端末で次のコマンド$ ps ax | grep sshdを実行し、結果が次のようになるか確認してください。

  username@hostname:~$ ps ax | grep sshd
    12970 ?        Ss     0:00 /usr/sbin/sshd -D
    12976 pts/1    R+     0:00 grep --color=auto sshd

上の12970 ? Ss 0:00 /usr/sbin/sshd -DSSHのデーモンです。
起動していないようなら$ sudo service sshd startを実行して、再度確認をしてください。

sshd_configの設定

ログインや待機ポートの設定ができるsshd_configを編集します。
SSHデーモンを起動している場合$ sudo service ssh stopを実行して一度停止してください。
/etc/ssh/sshd_configを好きなエディタで開いてください。このとき書き込みにsudo権限が必要になります。
開いたら下記を参照に自分の環境に合うように編集してください。各コマンドの説明は下へ
ファイルの一番下辺りに書いておけば問題はない

port 0000
PermitRootLogin y/n
PubkeyAuthentication y/n
PasswordAuthentication y/n
Protocol 2

port

SSHデーモンがリッスンするポート番号のこと。SSHは基本22番ポートを使うのでセキュリティ上22番以外でここにない番号推奨
一応0~65535の範囲で選べる。
もし、65535に設定する場合はport 65535にする

PermitRootLogin

rootでのログインを許可するかどうか、基本noにする。PermitRootLogin noでrootログインできなくなる。noの場所をyesにすれば許可できるけど、非推奨。

PubkeyAuthentication

公開鍵認証でのログインにするかどうか、環境による。ただこっちの場合だと追加の設定が必要になる。
PubkeyAuthentication noで公開鍵認証のログインをオフにする。デフォルトはオフ
一応公開鍵使う予定がなくてもPasswordAuthenticationを一緒に書いておいたほうが無難

PasswordAuthentication

上とは違いパスワードでのログインにするかどうか、これも環境による。こっちの場合は追加の設定は必要ない
PasswordAuthentication yesでPWのログインをオンにする。デフォルトはオン

Protocol

SSHのバージョンのこと、2でおk、書かなくてもデフォルトでVer2が選択されているが、別に書いても問題はない。

設定が書き終わったら

設定を読み込ませるためにはSSHデーモンを再起動する必要があります。
もし、起動したまま設定ファイルを編集していたら、$ sudo service sshd restartで再起動をしてください。

エラーが出たら

もし、$ sudo service sshd startを叩いたときに、
Job for ssh.service failed because the control process exited with error code. see systemctl status ssh.service and journalctl -xe for details.が出てきたら
$ sudo /usr/sbin/sshd -Tを実行してください。どこでエラーなのかが出ると思います。(大抵sshd_configのSyntaxエラー)

コマンド一覧

SSHの開始:$ sudo service sshd start
SSHの停止:$ sudo service sshd stop
SSHの再起動:$ sudo service sshd restart
エラー出たとき:$ sudo /usr/sbin/sshd -T