Help us understand the problem. What is going on with this article?

CentOS7.3でSSH接続(パスワード認証)する方法

More than 3 years have passed since last update.

こちらの記事の続きです。

はじめに

CentOSのインストール直後はSSH接続できず、ホストOSから操作できないため、SSH接続できるように設定します。
実務でもサーバーが遠隔にあることがほとんどであり、SSH接続でリモート操作することがよくあります。

環境

  • VirtualBox:5.0.32 r112930
  • ホストOS:macOS Sierra 10.12
  • ゲストOS:CentOS 7.3-1611 64bit Minimal

セットアップ(サーバー)

rootユーザーのログイン

まず、rootユーザーでログインします。
[localhost login]に「root」、[Password]に設定したパスワードを入力してください。完了はEnterキーです。
注意点として、パスワードの入力は何も表示されませんが、問題なく入力されています。
最終ログイン日時と [root@localhost ~]# _ が表示されたらログイン成功です。
スクリーンショット 2017-02-16 22.56.55.png

デフォルトでプロンプトは [{ユーザー名}@{ホスト名} {カレントディレクトリパス}] となっています。そのあとの # はrootユーザーという意味であり、一般ユーザーでログインすると $ となります。

SSHサーバーのインストール

openssh-server はMinimal ISOでもプリインストールされているため、インストール作業は不要です。

SSHの設定

SSHの設定ファイルを修正します。
※viの使い方は割愛します。

# vi /etc/ssh/sshd_config

#PermitRootLogin yesPermitRootLogin no#PasswordAuthentication yesPasswordAuthentication yes#PermitEmptyPasswords noPermitEmptyPasswords no に書き換え、 :wq で保存して終了します。
PermitRootLoginno にすると、rootユーザーによるログインを許可しません。
rootユーザーでログインできるとクラックされやすい、また、rootユーザーで操作を誤ると取り返しのつかないことになることもあるため、一般ユーザーでしかリモートログインできないようにするのが一般的です。
PasswordAuthenticationyes にすると、パスワード認証を許可します。
パスワード認証より公開鍵認証の方がセキュリティの観点から望ましいですが、ここではパスワード認証とします。
PermitEmptyPasswordsno にすると、パスワードなしを許可しません。

サービスの起動

SSHのサービスを起動します。

# systemctl start sshd.service

サービスが起動したか確認します。

# systemctl status sshd.service

緑の字で active (running) と表示されたらSSHのサービスが起動しています。

ファイアウォールの設定

SSH用のポートはMinimal ISOでも元から開放されているため、設定は不要です。

一般ユーザーの作成

SSH接続する一般ユーザーを追加します。

# useradd {ユーザー名}

追加した一般ユーザーにパスワードを設定します。

# passwd {ユーザー名}

New password: Retype new password: でパスワードを2回入力したら、パスワードの設定は完了です。

先ほどrootユーザーによるリモートログインを禁止したため、rootユーザー向けのコマンドを実行できないですが、 sudo というコマンドを使用すれば一般ユーザーでもrootユーザー向けのコマンドを実行できるようになります。
CentOSではデフォルトで sudo できるグループが wheel グループのみに制限されているため、追加した一般ユーザーを wheel グループに追加し、 sudo できるようにします。

# usermod -G wheel {ユーザー名}

ネットワークの設定

OSの起動時に自動でネットワークに接続するようにします。

# nmcli c mod enp0s3 connection.autoconnect yes

cconnection の略です。

IPアドレスの確認

# ip a show enp0s3

inet から始まる箇所がサーバーのIPアドレス(IPv4)です。

操作方法(クライアント)

macOSにはデフォルトでSSHクライアントがインストールされているため、ターミナルからSSH接続できます。
WindowsでもGit bashにはデフォルトでインストールされていますが、Tera Term(テラターム)やPuTTY(パティ)などのSSHクライアントを使用するのがいいと思います。

SSH接続の開始

$ ssh {ユーザー名}@{サーバーのIPアドレス}

The authenticity of host '{IPアドレス} ({IPアドレス})' can't be established.
ECDSA key fingerprint is SHA256:{英語の文字列}.
Are you sure you want to continue connecting (yes/no)?
のようなメッセージが表示されますが、こちらはそのサーバーに初めて接続する場合に表示されるメッセージであり、ここでは気にせず yes と入力します。

[test@localhost ~]$ と表示されたら、SSH接続に成功しています。ここからの入力は全て指定したIPアドレスのサーバーに反映されます。

SSH接続の終了

$ exit

最後に

IPアドレスはデフォルトで固定でなくDHCP(ipv4.method: auto)となっています。
通常、サーバーは固定のIPを使用しますが、ここではDHCPのままとしています。

参考リンク

uhooi
iOSアプリ開発とSwiftが好きです✨ 趣味:テニス、アナログゲーム
https://theuhooi.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away