SSH サーバ1. SSH サーバを設定
種類 内容 備考 OS CentOS 7.5 (1804) 本稿記述時の最新版 SSH サーバ OpenSSH_7.4p1
OpenSSL 1.0.2kCentOS 7.5 に付属の物 SSH サーバ IPアドレス 192.168.56.102 - SSH サーバ ポート番号 22 - ユーザ名 sshuser - グループ名 sshuser - ユーザのホームディレクトリ /home/sshuser/ .ssh/ ディレクトリを作成します ユーザの公開鍵格納ディレクトリ /home/sshuser/.ssh/ パーミッションは 700 にします ユーザの公開鍵ファイル /home/sshuser/.ssh/authorized_keys パーミッションは 600 にします
SSH クライアント
※ UserName は、Windows のユーザ名を指します。
種類 内容 備考 Windows Windows10 (1803) 本稿記述時の最新版 端末エミュレータ Teraterm Version 4.100 本稿記述時の最新版 秘密鍵・公開鍵を作成するフォルダ PC > ドキュメント > PubKeys 実フォルダは
C:\Users\UserName\Documents\PubKeys\秘密鍵のファイル名 id_rsa Teraterm のログイン時に使用する 秘密鍵のパスフレーズ (なし) 今回はパスフレーズを設定しません 公開鍵のファイル名 id_rsa.pub .ssh/authorized_keys に追記する
※ Teraterm のインストールは簡単なので省略します。
1-1. SSH サーバの設定に公開鍵の設定がされているか確認する2. ユーザを作成
$ ssh -V
$ su
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
# cat /etc/ssh/sshd_config | egrep '(PubkeyAuthentication|AuthorizedKeysFile)'
※1 PubkeyAuthentication は省略時に yes が設定されます。つまり意図的に no が指定されていなければ OK。
#PubkeyAuthentication yes 公開鍵のログインを受け付ける※1 AuthorizedKeysFile .ssh/authorized_keys 公開鍵を格納するファイル名※2
※2 各ユーザのホームディレクトリが省略されているので、今回は /home/sshuser/.ssh/authorized_keys となります。
2-1. ユーザを作成する (公開鍵ログインをするため、パスワードは設定しない)3. 秘密鍵・公開鍵の作成
# useradd sshuser
#passwd sshuser# <-- パスワードは設定しない
#usermod -s /sbin/nologin sshuser# <-- シェルを変更するとコマンド入力が使えなくなる
#usermod -d / sshuser# <-- ホームディレクトリを変更すると .ssh/authoroized_keys が使用不能になる
3-1. Teraterm を起動する4. 公開鍵の設定
3-2. メニューから「設定(S)」-「SSH鍵生成(N)」を選択する
3-3. 鍵生成のウィンドウ「TTSSH: 鍵生成」が表示されるので をクリックする
3-4. 秘密鍵・公開鍵鍵が生成さると「鍵を生成しました。」が表示されるので、それぞれをファイルに保存する。
ここでは「鍵のパスフレーズ」(秘密鍵のパスワードのこと) を未記入にしているため、警告ウィンドウが表示される。3-5. 秘密鍵の保存
秘密鍵はコピーすると誰でも使えてしまうため、Windows で共有アカウントを使用する場合は、必ずパスワードを設定すること。
ボタンをクリックする -> 3-5 へ ボタンをクリックする -> 3-6 へ
⇒ 警告ウィンドウ
上記 3-4 で ボタンをクリックするとファイル保存のウィンドウが表示されるので、3-6. 公開鍵の保存
フォルダとファイル名を指定し ボタンをクリックする。
保存フォルダ PC > ドキュメント > PubKeys 保存ファイル id_rsa
ファイルの内容例:
-----BEGIN RSA PRIVATE KEY----- MIIEoAIBAAKCAQEAky+GyrQv1PdqDOlnfn6TNEvVkmmlRvGWReAr+PzXT852mY4K t0IhyVxK08nLxRIVPALpSu7hjWMMzwAKHJkxE6tNbk2WjqFZJK8XVFC5aB4TWBAW AwglYohpoysCqbyqr1Fc (~長いので省略~) mHe/wvux01CN/O06aCz0/2T+ xnbVS+Y7tQzOaIxC8dNV0nRGRNydcQ6/nYr6TgbAnOgzRNt9qtgDCArjWZexB7Is Iiz1gBjNZsODBrkoQUCrYW9eu8K6lg8xRc1Ig+k9sjhgFRl5 -----END RSA PRIVATE KEY-----
上記 3-4 で ボタンをクリックするとファイル保存のウィンドウが表示されるので、3-7. 鍵生成の終了
フォルダとファイル名を指定し ボタンをクリックする。
保存フォルダ PC > ドキュメント > PubKeys 保存ファイル id_rsa.pub
ファイルの内容例:
ssh-rsa AAAAB3NzaC1yc (~長いので省略~) weu6NSNO245DScrekQ== sshuser
をクリックし、「TTSSH: 鍵生成」を閉じる
4-1. 公開鍵を格納するディレクトリとファイルを (空で) 作成する。5. 公開鍵を利用してログイン
# mkdir /home/sshuser/.ssh4-2. 上記 3-1 で保存した公開鍵を公開鍵ファイルに追記する。
# chmod 700 /home/sshuser/.ssh
# chown sshuser:sshuser /home/sshuser/.ssh
# touch /home/sshuser/.ssh/authorized_keys
# chmod 600 /home/sshuser/.ssh/authorized_keys
# chown sshuser:sshuser /home/sshuser/.ssh/authorized_keys
# cat >> /home/sshuser/.ssh/authorized_keys << EOF
ssh-rsa AAAAB3NzaC1yc (~長いので省略~) weu6NSNO245DScrekQ== sshuser
EOF
※ページの都合上、(~長いので省略~) と記述していますが、実際に省略してはいけません。
5-1. Teraterm を起動し、作成した秘密鍵を使用してログインする。
⇒5-3. ログイン成功
「新しい接続」ウィンドウの「ホスト(T)」には下記を記入する。
sshuser@192.168.56.102 22 /ssh /auth=publickey /keyfile=C:\Users\UserName\Documents\PubKeys\id_rsa
・ sshuser : ログインするユーザ名 ・ 192.168.56.102 : ログインするサーバ ・ 22 : サーバ側の接続ポート ・ /ssh : SSH 接続をする ・ /auth=publickey : 公開鍵でログインする ・ /keyfile=フルパス : 秘密鍵ファイルの場所
秘密鍵にパスフレーズを設定した場合
上記 3-4 で「鍵のパスフレーズ」にパスワード文字列を記入した場合は、このウィンドウが表示される。
「SSH2秘密鍵の読み込みに失敗しました error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt」
「パスフレーズ(P)」に、上記 3-4 で設定したパスフレーズと同一の文字列を記入して ボタンをクリックする。
⇒
あるいは、下記のように「/passwd=パスフレーズ」を付加して接続する。
(パスフレーズが見えてしまうので非推奨)
sshuser@192.168.56.102 22 /ssh /auth=publickey /keyfile=C:\Users\UserName\Documents\PubKeys\id_rsa /passwd=●●●●●