LoginSignup
13
23

More than 5 years have passed since last update.

CentOS7 の sshd設定

Last updated at Posted at 2016-06-30

CentOS7を新規インストール後に行ったsshd設定のメモです。

クライアント公開鍵の登録

予め、ssh-gen 等でクライアント公開鍵を作成しておきます。

$ cd ~
$ mkdir .ssh
$ chmod 700 .ssh/
$ cd .ssh/
$ vi authorized_keys
… 略 …
$ chmod 600 authorized_keys

.ssh ディレクトリ、authorized_keys ファイルのパーミッションを正しく設定しないと、sshd再起動でエラーになります。

sshdの再起動

bash
# systemctl restart sshd
# systemctl status sshd
● sshd.service - OpenSSH server daemon -l
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2016-06-30 23:57:30 JST; 12s ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 2703 (sshd)
   CGroup: /system.slice/sshd.service
           └─2703 /usr/sbin/sshd -D

Jun 30 23:57:30 xxx systemd[1]: Started OpenSSH server daemon.
Jun 30 23:57:30 xxx systemd[1]: Starting OpenSSH server daemon.
Jun 30 23:57:30 xxx sshd[2703]: Server listening on 0.0.0.0 port 22.
Jun 30 23:57:30 xxx sshd[2703]: Server listening on :: port 22.

クライアントから鍵認証でSSH接続して確認します。

これで基本的な鍵認証の設定は終わりです。
あとはポートの変更とかパスワード認証の無効化とかを行います。

SELinuxの設定変更

sshdのポート番号を変更するとそのままではエラーでsshdが起動しないので、SELinuxの設定を変更します。

# yum install -y policycoreutils-python
# semanage port -a -t ssh_port_t -p tcp 12322

sshdの設定変更

sshdのポート番号、rootでのログイン無効化、パスワード認証の無効化を変更します。

# vi /etc/ssh/sshd_config

…略…
# ポート番号
Port 12322
# rootでのSSHログインの可否:yes ログイン可、no ログイン不可
PermitRootLogin no
# パスワード認証の可否:yes パスワード認証可、no パスワード認証不可
PasswordAuthentication no
…略…

SSHを再起動します。

# systemctl restart sshd
# systemctl status sshd -l
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2016-07-01 00:27:38 JST; 27s ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 16527 (sshd)
   CGroup: /system.slice/sshd.service
           └─16527 /usr/sbin/sshd -D

Jul 01 00:27:38 xxx systemd[1]: Started OpenSSH server daemon.
Jul 01 00:27:38 xxx systemd[1]: Starting OpenSSH server daemon...
Jul 01 00:27:39 xxx sshd[16527]: Server listening on 0.0.0.0 port 12322.
Jul 01 00:27:39 xxx sshd[16527]: Server listening on :: port 12322.
# ss -natu
Netid State      Recv-Q Send-Q            Local Address:Port                           Peer Address:Port
tcp   LISTEN     0      128                           *:12322                                     *:*                  

ファイアウォールの設定変更

ファイアウォールの設定を変更して、変更したポート番号を開けます。

# vi /etc/firewalld/services/ssh.xml

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>SSH</short>
  <description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
  <port protocol="tcp" port="12322"/>
</service>

設定を変更したら、firewalld を再起動します。

# systemctl restart firewalld
# systemctl status firewalld -l
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2016-07-01 00:31:46 JST; 35s ago
 Main PID: 16634 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─16634 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Jul 01 00:31:45 xxx systemd[1]: Starting firewalld - dynamic firewall daemon...
Jul 01 00:31:46 xxx systemd[1]: Started firewalld - dynamic firewall daemon.

クライアントから鍵認証でSSH接続します。接続できれば完了です。

参考

13
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
23