CentOS 7にssh接続するための設定

ASRock Beebox-SにCentOS 7をインストールしたので、まずは、ssh接続するために、いろいろと設定しました。自宅サーバーとして、外出時にWindowsマシンやChromebookからアクセスすることを想定しています。

OpenSSHは標準でインストールされ、起動していました。まずは、

家庭内LANからアクセスしてみます。

$ ssh username@192.168.10.11
(192.168.10.11は、自宅サーバーのプライベートIPアドレス)

デフォルトでは、usernameのパスワードを訊かれるので入力すると、アクセスできました。家庭内LANで使用する分には、パスワード認証でよいと思いますが、外部からアクセスすることを考え、公開鍵認証方式を設定することにしました。

そのためには、公開鍵と秘密鍵を作成しなければなりません。Linuxのssh-keygenコマンドを使用することもできますが、私はファイル整理の都合上、TeraTermを使用しています。

TeraTerm上で、「設定」-「SSH鍵生成」を選択するとダイアログボックスが現れます。 鍵の種類:RSA,ビット数:2048です。「生成」ボタンを押すと、鍵を生成します。鍵のパスフレーズを入力し、「公開鍵の保存」「秘密鍵の保存」ボタンを押して、鍵を保存します。保存した鍵は、公開鍵だけをサーバーに移動します。秘密鍵は、そのパソコン専用の秘密の鍵です。面倒であれば、別のパソコンに持っていってそのまま使うということも考えられますが、セキュリティ的には好ましくないかもしれません。

公開鍵をサーバーに保存します。
$ mkdir .ssh  # /home/username/.sshフォルダを作成する
$ cd /home/username/.ssh
$ touch authorized_keys
$ chmod 600 authorized_keys
USBメモリーか何かを使って公開鍵(id_rsa.pub)を.sshフォルダにコピー。
$ cat id_rsa.pub >>authorized_keys

公開鍵を使用してssh接続ができるようにsshd_configを設定します。
$ su
(パスワード入力)
# vi /etc/ssh/sshd_config
(sshd_configファイルを編集した後、sshdの再起動)
# systemctl restart sshd.service

設定内容としては、
#Port 22 -> 必要に応じて適当な番号に変えます
#PermitRootLogin yes -> PermitRootLogin no
(ssh接続時におけるrootユーザのログインを禁止)
#PubkeyAuthentication no -> PubkeyAuthentication yes
#PasswordAuthentication yes -> PasswordAuthentication no
くらいでしょうか。

ssh接続(TeraTerm)

Host:192.168.10.11,TCP port#:22(変えたport番号),SSH on
認証を要求してくるので、ユーザー名、パスフレーズ、秘密鍵の指定を行い、「OK」ボタンを押すとログインできます。

ssh接続(Linux)

$ ssh username@192.168.10.11 -i id_rsa
パスフレーズを訊いてくるので、入力するとログインできます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です