Linux

【Linux】SSHの設定方法解説!サーバーをリモートから操作する

こんにちは、インフラエンジニアのryuです。

今回は、SSHの設定方法を解説します。SSHとは、リモートでサーバーを操作するプロトコルです。SSHをLinuxにインストールして、リモートからサーバーを操作しましょう。SSHのインストールから接続まで、設定方法を解説します。

【Linux】SSHの設定方法解説!

SSHの設定方法が分からない!

SSHサーバーを構築して、リモートでサーバーを操作する方法を教えます!

今回の記事では、「SSHの設定方法が分からない!」という初心者の方に向けて、SSHサーバーの構築方法を解説します!

設定の手順は簡単で、3つの手順で構築可能です!

ただし、今回はデフォルトの設定値を使用するため、SSHをインストールした時点で動作確認できます。

それぞれの手順について詳しく解説します!

まず、SSHがどのようなものかを説明します。SSHがどのようなものかを既に知っているという方は、読み飛ばしてください。

SSHとは?

SSHとは、 Secure Shell(セキュアシェル) の略です。

先ほども説明しましたが、サーバーを遠隔で操作するためのプロトコルです。

sshとは、主にUNIXコンピュータで利用される、ネットワークを介して別のコンピュータにログインして操作するためのソフトウェアの一つ。通信経路が暗号化されるため、インターネットなどを経由しても安全にアクセスすることができる。

http://e-words.jp/w/ssh.html

SSHは公開鍵暗号方式を利用して、リモート通信を暗号化しています。SSHを利用することで安全にリモート接続を行うことができます。

サーバーに限らず、ネットワーク機器など遠隔で設定を行うものには良く使われます。

ただ、リモートで操作されるため、パスワードの管理などセキュリティには十分注意しましょう。

では、次にLinuxで実際に構築してみましょう。

手順①.SSHをインストールする

SSHを設定する手順を解説します。linuxはDebianを使用しています。

まず、SSHのパッケージをインストールします。以下のコマンドを入力しましょう。

apt-get install ssh

インストールの途中で”yes/no”が聞かれるのでyを入力しましょう。そのままEnterを押しても大丈夫です。

インストールすると、以下のように表示されます。

sshインストール

手順②.設定ファイルの確認

次に設定ファイルを見てみましょう。以下のコマンドを入力します。

vi /etc/ssh/sshd_config

viコマンドはファイルを編集するためのコマンドです。viコマンドの使い方はこちらの記事で解説しているので、分からない方は読んでください。

viコマンドでファイルを指定するとき、ssh_configという似た名前のファイルがあるので注意しましょう。/etc/ssh/sshd_configというファイルを編集します。”sshd”のdが付いているファイルです。

設定ファイルの中身は以下のようになります。

#$OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $
# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key

# Ciphers and keying
#RekeyLimit default none

# Logging
#SyslogFacility AUTH
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m
#PermitRootLogin prohibit-password
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

#PubkeyAuthentication yes

# Expect .ssh/authorized_keys2 to be disregarded by default in future.
#AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2

#AuthorizedPrincipalsFile none

#AuthorizedKeysCommand none
#AuthorizedKeysCommandUser nobody

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no
・・・以下省略

設定ファイルは長いので、重要な部分だけ紹介していきます。

上から、

#Port 22        →SSHを受け付けるポート
#ListenAddress 0.0.0.0 →SSHを受け付けるアドレス

SSHはTCPの22番で受け付けています。ポート番号について良く分からない方はこちらの記事を参考にしてください。

次は、認証についてです。SSHで接続した後の認証方法の設定を行います。ユーザ認証や秘密鍵を利用した認証などがあります。今回はユーザ認証で接続を行います。デフォルトで設定されていますが、こちらの設定値で設定されています。

# Authentication:
・・・
#PasswordAuthentication yes →パスワードの認証を許可

ここの設定でユーザの認証を許可しています。正確に言うと”Use PAN yes”も関係していますが、詳しい解説は省略します。

認証するユーザはLinuxのユーザを使用するので、“adduser”コマンドを使用して追加します。

手順③.SSHサーバーの再起動

設定ファイルを編集したら、SSHを再起動しましょう。

再起動しないと、更新した設定ファイルが適応されないからです。

コマンドは以下の通りです。

/etc/init.d/ssh restart

エラーが出なかったら、正常に動作しています。[NG]と表示されたら、エラーの内容をよく読んで、修正してください。

PCからリモートでサーバーに接続してみよう!

では、PCからリモートでサーバーに接続してみましょう。

SSH接続するには、「TerraTerm」というソフトがおすすめです。以下のサイトよりダウンロードしましょう。無料で使用できます。

https://ja.osdn.net/projects/ttssh2

TerraTermを起動し、↓の画像のようにサーバーのIPアドレスを入力します。

ssh接続説明

次に、セキュリティ警告が出ますが、「続行」をクリックします。

ssh接続2

最後にユーザ名とパスワードを入力して終了です。

ssh接続時のユーザ認証

ちなみに、LinuxでSSH接続する場合は以下のようなコマンドで接続できます。

ssh user@192.168.0.1
ssh <ユーザ名>@<ipアドレス>

ユーザー認証が完了すると、Linuxサーバーに接続できます。

SSHの設定方法まとめ

最後にまとめです。

SSHの設定方法は、

  • SSHのインストール
  • 設定ファイルの編集
  • SSHの再起動

この3つの手順です。

今回の記事では、デフォルトの設定を使っているので、設定ファイルを編集しなくても、接続が可能です。

クライアントにTeraTermをインストールして接続してみましょう!

以上で記事を終わります。ここまで読んでいただきありがとうございました。

ABOUT ME
ryu
大手メーカのIT部門でインフラエンジニアやってます。 サーバ、ネットワーク、セキュリティ、クラウドについて投稿します。 AI、ARも勉強中です! youtubeでも技術ネタを発信していきます。↓のアイコンよりご覧ください!