プロジェクト

全般

プロフィール

SSH

1.SSHとは
Secure Shell(セキュアシェル、SSH)は、暗号や認証の技術を利用して、安全に リモートコンピュータと通信するためのプロトコルです。 パスワードや認証部分を含むすべてのネットワーク上の通信が暗号化されます。 (リモート通信における代表的なプロトコルは、telnetとSSH)

2.公開鍵認証

パスワード認証では、※1ブルートフォースアタックによりシェルへのアクセスを許してしまう場合があります、公開鍵認証では強固なセキュリティ認証が可能になります。 ※1 暗号や暗証番号などで理論的にありうるパターン全てを入力し解読する暗号解読法 公開鍵認証には、いくつかの暗号方式があります。 暗号方式

暗号方式 プロトコル 特徴
RSA 1 SSH1 メリット SSH1のみしか使えない環境で使用可能。
デメリット SSH1は脆弱性がある為、セキュリティ的に好ましくない。
DSA SSH2 メリット RFC 4251に規定されている為、SSH2で必ず使用可能。
デメリット 鍵長1024bit。
RSA メリット 鍵長512bit~4096bitにて設定可能。
デメリット RFC 4251に規定されていない。(現在は多くの環境での利用可能)
☆ポイント 2015年時点では「SSH2」、「鍵長4096bitまで設定可能」、「多くの環境で利用できる」RSAを暗号方式として利用するのが一般的です。

3.公開鍵と秘密鍵
公開鍵…サーバ側に設置する。 秘密鍵…クライアント側に設置する。

4.公開鍵と秘密鍵の作成

・公開鍵と秘密鍵を作成致します。 ssh-keygenコマンド 【オプション】 –b 鍵長指定、–f ファイル名指定、–t 暗号方式指定

[user01@CentOS ~]$ ssh-keygen -b 2048 -f testkey -t rsa
Generating public/private rsa key pair.

Enter passphrase (empty for no passphrase):パスフレーズ入力

Enter same passphrase again:パスフレーズ再入力

Your identification has been saved in testkey.

Your public key has been saved in testkey.pub.

The key fingerprint is:

d5:d9:16:59:7f:80:17:41:df:eb:40:e9:c8:b7:c4:7d user01@CentOS

The key’s randomart image is:

+–[ RSA 2048]—-+

| o*=.|

| ..o++o|

| . o+o =|

| .. =.. o|

| S o * oE|

| o + .|

| . . |

| |

| |

+—————–+

[user01@CentOS ~]$

5.公開鍵認証接続設定

・作成された公開鍵及び秘密鍵の確認

[user01@CentOS ~]$ ll
-rw——- 1 user01 user01 1743 4月 30 10:03 2015 testkey

-rw-r–r– 1 user01 user01 395 4月 30 10:03 2015 testkey.pub

秘密鍵…testkey

公開鍵…testkey.pub

6.公開鍵(TESTKEY.PUB)をサーバーに移動する

FTPやWinSCPを利用する。

7.公開鍵の設定

・公開鍵の設定

ユーザーディレクトリに.sshを作成します。

作成後mvコマンドにてファイル移動及びファイル名の変更を致します。

[user01@CentOS ~]$ mkdir /home/user01/.ssh
[user01@CentOS ~]$ mv testkey.pub .ssh/authorized_keys
・パーミッションの設定

所有者は接続ユーザーである事と、接続ユーザー以外に書込み権を設定してはいけません適切なパーミッション設定しないと認証時にエラーが発生します。

[user01@CentOS ~]$ chmod 700 /home/user01/.ssh
[user01@CentOS ~]$ chmod 600 /home/user01/.ssh/authorized_keys
[user01@CentOS ~]$ ll -a .ssh
drwx—— 2 user01 user01 4096 4月 30 10:05 2015 .

drwx—— 3 user01 user01 4096 4月 30 10:05 2015 ..

-rw——- 1 user01 user01 395 4月 30 10:07 2015 authorized_keys

所有者が接続ユーザーでない場合や、所有者以外に書込み権がある場合、認証に失敗します。

8./ETC/SSH/SSHD_CONFIGの設定編集(ROOTユーザーにて編集)

[root@CentOS ~]# vi /etc/ssh/sshd_config
#PubkeyAuthentication yes → #を外す

#AuthorizedKeysFile .ssh/authorized_keys  → #を外す

PasswordAuthentication yes → PasswordAuthentication no に変更

・sshdの再起動