PuttygenでRAS鍵を作ってWindowsからCentOS7へ接続できるようにする

VirtualBoxに作ったCentOS(ゲストOS)にMac(ホストOS)からRAS鍵認証でログインできるようにしたので、Windows(ネットワーク内のPC)からもRAS鍵認証でログインできるようにします。
ponsuke-tarou.hatenablog.com

  • 目的 : Linux環境でSSHの鍵作成から設定まで勉強したい!
  • 環境
    • ホストOS : macOS Sierra Version10.12.6
    • VirtualBox : 5.1.26 r117224 (Qt5.6.2)
    • ネットワーク内のPC : Windows10 64bit
      • Putty : Release 0.70
      • PuTTYgen : Release 0.70

Puttygenで公開鍵と秘密鍵を作成します。

Puttyをインストールします。

qiita.com

Puttygenで鍵を作成します。

  1. Pttuyに同梱されているPuttygenを起動します。
  2. [Parameters] > [Type of key to generate] で「RSA」を選択します。
  3. [Number of bits in generated key:]で鍵の強度を選択します。
  4. [Generate]ボタンを押下します。f:id:ponsuke_tarou:20171029234034j:plain
  5. スペースの部分でマウスをぐるぐるします。f:id:ponsuke_tarou:20171029234114j:plain
  6. 鍵が作成されます。f:id:ponsuke_tarou:20171029234157j:plain
  7. パスフレーズ*1を設定します。f:id:ponsuke_tarou:20171029234405j:plain
  8. [Save public key]ボタンを押下して公開鍵を任意の場所に保存します。
  9. [Save private key]ボタンを押下して秘密鍵を任意の場所に保存します。

秘密鍵のフォーマットを見てみます。

PuTTY-User-Key-File-2: ssh-rsa
Encryption: aes256-cbc
Comment: rsa-key-20171029
Public-Lines: 6
AAAAB3NzaC1yc2EAAAABJQAAAQEAxAEme5H2xppEXco7GFXkThnD7Fg+NDmeFbD6
bk3FleItQr7g7jlCrk8Rlg5T280g8d1o/Qp7Y3SLoOJHd0Vi/I0MtITJpqnW4sKQ
wPvLSrq3bgDe5wXAzNwh78sy8U4KqOLlJPHvLmCZ1tJE89KNMH4q145/ReyJZwAP
3U8t5RM5XSg1oByDPW7FL9TifABB4ZToRGx6Fmsfyb0r+wMjN3Ui0zNTcWFHDjw+
UcoAlqjBWIpZGqju3ZztdJuHZ8Ed2EMrxmjJkqh6yfu1ek5yPMdSLlPC/autU/JF
YR12HGmkBGI/QB8V0YPWHdzP3y2KaSeeJ9sowB9dzc8Iaw1JUw==
Private-Lines: 14
itvpHd9uLhrzfNbOwAsOiFjVUDQwJT8xwoN++LvwWzJd0s/X2ZyBHWGtgfFZbwTR
a8b0cQ1Vd5ZcZmhnz09TPHGNjeELnJ0BNa7H+DDyHCBFuKyxvpb49v3brKp9HJBp
JT/rCFMTJqMX02OpA5pKA4SbOThA/PMnLgRWXrryg8/pOXRdQ2ecVJeWlU+r8cJB
hpR/2LkP4jTykNY9MR9pYD+nDGEsND8Q6hGTmnj8TgOYp3Mmy2uVXhGvbxdGdsGH
iQxHR/jGwMseFZ+sZyM0URr/RvWTVexhBF72LQqWOhyweellHPoHrLpo2zFX+SvK
lMjQHc3pVggSxD4WG7qtsKnu+H0WIUeaM0JjW+XJm4AXP8/zes8HTZr43VvaSbHz
y3LseqFFlOliko3Iin/fyR08YkU+B+qPHKVmWjrHtV91PQHNhU1y83FWRHI0O+Gs
1ugjS3ZdTp3QpzOS+0zIpPBTU4zw+QjXMePgTrOAe1ZuS6z7Vlz7xAZ04upSoVUj
XX8RyESYgGStqBy6cruoLkuCa+zDpXrnfb3FeYnHU+9kE5YRftmzdrnKKSSMzAtq
twofymiMZ04Soqf/Zmvekspj7FiYQTj4QVpHKjKWeZMszv5zTsbG2DZ5kzK4JOv8
DOlyNqEQi/whps2qkLZlQKTubIAewj3bKfk4nXB4TlrAJZqY/CdddW0yi6jOC90s
TvURd2R3sDCvGkM98zKPHi7FQ415Ei7mBkYC1VfZQxezx2AvH1x6PdEHidjNxiZa
2MTdlTEmzXX1/yxZuq0S/vRuTv4lK4HdnhiGeC35YUOrMSoBpcD5MiffroQF7Ie6
kGgnoWs210bRwNKAP9QEvNTWR91HotDCEgQim1JpqvPY8xd3C9yluGKut/pOWFL0
Private-MAC: 811871db936602fd5c01593aa7273dcc79eab6e2

公開鍵の中身を見てみます。

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20171029"
AAAAB3NzaC1yc2EAAAABJQAAAQEAxAEme5H2xppEXco7GFXkThnD7Fg+NDmeFbD6
bk3FleItQr7g7jlCrk8Rlg5T280g8d1o/Qp7Y3SLoOJHd0Vi/I0MtITJpqnW4sKQ
wPvLSrq3bgDe5wXAzNwh78sy8U4KqOLlJPHvLmCZ1tJE89KNMH4q145/ReyJZwAP
3U8t5RM5XSg1oByDPW7FL9TifABB4ZToRGx6Fmsfyb0r+wMjN3Ui0zNTcWFHDjw+
UcoAlqjBWIpZGqju3ZztdJuHZ8Ed2EMrxmjJkqh6yfu1ek5yPMdSLlPC/autU/JF
YR12HGmkBGI/QB8V0YPWHdzP3y2KaSeeJ9sowB9dzc8Iaw1JUw==
---- END SSH2 PUBLIC KEY ----

qiita.com

CentOS7に公開鍵を配置します。

CentOS7に接続するためにPuttyを設定します。

  1. Puttyを起動します。
  2. [Host Name(or IP address)]にCentOSIPアドレスを設定します。
  3. [Port]に「22」を設定します。f:id:ponsuke_tarou:20171030224609j:plain
  4. [Saved Sessions]に自分に分かる名前を設定します。
  5. [Connection] > [Data] > [Auto-login username]にユーザ名を設定します。f:id:ponsuke_tarou:20171030224613j:plain
  6. [Session] > [Save]ボタンを押下して設定を保存します。f:id:ponsuke_tarou:20171030224616j:plain
  7. [Open]ボタンを押下して接続します。
  8. 初回接続では鍵についてのメッセージが表示されるので[はい]で続けます。f:id:ponsuke_tarou:20171030224621j:plain

CentOS7で公開鍵を配置する準備をします。

# CentOS7にログインします。
$ ponsuke@192.168.0.6
Using username "ponsuke".
ponsuke@192.168.0.6s password: #<------------ まだこの時点では普通のパスワードでログインします。

# 公開鍵を配置用ディレクトリを作成します。
$ mkdir /home/ponsuke/.ssh
$ ls -la
合計 12
drwx------. 3 ponsuke ponsuke  74 1030 22:24 .
drwxr-xr-x. 4 root    root     33  68 21:27 ..
-rw-r--r--. 1 ponsuke ponsuke  18  83  2016 .bash_logout
-rw-r--r--. 1 ponsuke ponsuke 193  83  2016 .bash_profile
-rw-r--r--. 1 ponsuke ponsuke 231  83  2016 .bashrc
drwxrwxr-x. 2 ponsuke ponsuke   6 1030 22:24 .ssh

# ディレクトリと中身の所有者を変更します。
$ chown -R ponsuke:ponsuke /home/ponsuke/.ssh/

# 権限を確認します。
$ ls -la
合計 12
drwx------. 3 ponsuke ponsuke  74 1030 22:24 .
drwxr-xr-x. 4 root    root     33  68 21:27 ..
-rw-r--r--. 1 ponsuke ponsuke  18  83  2016 .bash_logout
-rw-r--r--. 1 ponsuke ponsuke 193  83  2016 .bash_profile
-rw-r--r--. 1 ponsuke ponsuke 231  83  2016 .bashrc
drwxrwxr-x. 2 ponsuke ponsuke   6 1030 22:24 .ssh

# ログアウトします。
$logout

公開鍵を配置します。

# Puttyに同梱されているSCPツールを使います。
$ ls -la /c/app/putty/
total 3697
drwxr-xr-x 1 m-uki 197609      0 1030 22:04 ./
drwxr-xr-x 1 m-uki 197609      0 1030 22:35 ../
-rw-r--r-- 1 m-uki 197609   1338 74 19:31 LICENCE
-rwxr-xr-x 1 m-uki 197609 313912 74 19:34 pageant.exe*
-rwxr-xr-x 1 m-uki 197609 617048 74 19:34 plink.exe*
-rwxr-xr-x 1 m-uki 197609 626744 74 19:34 pscp.exe* #<------------------- これです。
-rwxr-xr-x 1 m-uki 197609 643144 74 19:34 psftp.exe*
-rw-r--r-- 1 m-uki 197609 283045 74 19:31 putty.chm
-rwxr-xr-x 1 m-uki 197609 854072 74 19:34 putty.exe*
-rwxr-xr-x 1 m-uki 197609 407104 74 19:35 puttygen.exe*
-rw-r--r-- 1 m-uki 197609   1893 74 19:30 README.txt
-rw-r--r-- 1 m-uki 197609    104 74 19:30 website.url

# SCPで公開鍵をWindowsからCentOS7へ配置します。
$ /c/app/putty/pscp.exe /c/app/Dropbox/key/CentOS7ofVirtualBoxInMac.pub ponsuke@192.168.0.6:.ssh/
ponsuke@192.168.0.6s password: #<------------ まだこの時点でも普通のパスワードです。

CentOS7ofVirtualBoxInMac. | 0 kB |   0.5 kB/s | ETA: 00:00:00 | 100%

# CentOS7にログインします(うっかりPuttyを使わずにログインしてしまいました)。
$ ssh ponsuke@192.168.0.6
The authenticity of host '192.168.0.6 (192.168.0.6)' cant be established.
ECDSA key fingerprint is SHA256:j+mhEbwrkV5GaVU8gat34VZs2A4+q4q8HaKjOg9m33I.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.6' (ECDSA) to the list of known hosts.
ponsuke@192.168.0.6s password: #<------------ まだこの時点でも普通のパスワードです。
Last login: Mon Oct 30 22:23:20 2017 from 192.168.0.7

# 配置した公開鍵を確認します。
$ ls -la .ssh/
合計 4
drwxrwxr-x. 2 ponsuke ponsuke  42 1030 22:34 .
drwx------. 3 ponsuke ponsuke  95 1030 22:27 ..
-rw-rw-r--. 1 ponsuke ponsuke 477 1030 22:34 CentOS7ofVirtualBoxInMac.pub

# 公開鍵をPuttygenの形式からLinuxで使えるOpen SSL形式に変換します。
$ ssh-keygen -i -f .ssh/CentOS7ofVirtualBoxInMac.pub > .ssh/authorized_keys

# Open SSL形式に変換した公開鍵の中身を見てみます。
$ cat .ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAxAEme5H2xppEXco7GFXkThnD7Fg+NDmeFbD6bk3FleItQr7g7jlCrk8Rlg5T280g8d1o/Qp7Y3SLoOJHd0Vi/I0MtITJpqnW4sKQwPvLSrq3bgDe5wXAzNwh78sy8U4KqOLlJPHvLmCZ1tJE89KNMH4q145/ReyJZwAP3U8t5RM5XSg1oByDPW7FL9TifABB4ZToRGx6Fmsfyb0r+wMjN3Ui0zNTcWFHDjw+UcoAlqjBWIpZGqju3ZztdJuHZ8Ed2EMrxmjJkqh6yfu1ek5yPMdSLlPC/autU/JFYR12HGmkBGI/QB8V0YPWHdzP3y2KaSeeJ9sowB9dzc8Iaw1JUw==

# ログアウトします。
$ logout
Connection to 192.168.0.6 closed.

webkaru.net

puttyの公開鍵をOpenSSH形式に変換するmistymagich.wordpress.com

uxmilk.jp

WindowsからCentOSPuttyを使ってRAS鍵認証で接続します。

  1. Puttyを起動します。
  2. [Connection] > [SSH] > [Auth] > [Private key file for authentication:]に秘密鍵を設定します。f:id:ponsuke_tarou:20171030225342j:plain
  3. [Session] > [Save]ボタンを押下して設定を保存します。
  4. [Open]ボタンを押下して接続します。
Using username "ponsuke".
Server refused our key
ponsuke@192.168.0.6s password: #<---------------- 鍵作成時に設定したパスフレーズを使います。
Last login: Mon Oct 30 22:39:17 2017 from 192.168.0.7

# ログインできました。
$ pwd
/home/ponsuke

次は、TeraTermでログインできるようにします。
ponsuke-tarou.hatenablog.com