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

CentOS設定記録5 ssh鍵変更編

More than 3 years have passed since last update.

はじめに

Linux初心者の設定記録
思いついた順で設定していきます

設定記録1:IDCFクラウド登録~ssh接続
設定記録2:ログインユーザー作成~rootのSSH接続禁止
設定記録3:Apacheサーバー設定~DNS設定まで
設定記録4:Digest認証導入
の続き

今回の目的

  • sshの設定変更

sshの認証と通信

公開鍵・秘密鍵を使った認証で、ハッシュ関数で使う乱数シードを受け渡し。
以後はそのシードをもとに通信をやり取りする、という理解。
いまいち理解しきれていないが、いったんはその理解で進める。またいずれ調べる。

ssh認証

現状

  • IDCFクラウド登録時に生成したSSH認証鍵はRSAのkey size 1024bit
    ssh-keygen -l -f /home/username/.ssh/authorized_keys
    1024 54:03:ec:4b:15:98:85:c7:8d:88:29:72:06:83:28:9c (RSA) #結果 1024bitのRSA
  • ググったらSSH認証で使用されるもので多いのはRSAの2048bit
  • 1024bitでもすぐに危ないという感じではなさそうだが、あまりよろしくはなさそう

暗号アルゴリズムの安全性

IPA 発行のSSL/TLS 暗号設定 ガイドラインのP13に暗号アルゴリズムの安全性について記載あり
SSLではないけれど、暗号アルゴリズムの安全性ということでは同様のはずなので、新アルゴリズムはここを参考に選ぶ

  • RSA 1024bitはビット安全性が80 ビット、つまり2^80の計算量で暗号ができる
  • RSA 4096bitでもビット安全性は128~192ビットの間

RSAとは違うECDSA という暗号アルゴリズムも利用できる。
ECDSA 521bitはRSAの15360bitに匹敵するビット安全性らしい。
一定以上のkey sizeなら暗号速度がRSAより早くなるらしい。
また、521なのは512のtypoではなく、速度向上のためらしい。

ということでECDSA 521bitで設定してみることにする。

抜粋

ビット安全性 暗号スイート
80 ビット RSA-1024
ECDSA-160
112 ビット RSA-2048
ECDSA-224
128 ビット ECDSA-256
128 ビット

192 ビット
RSA-4096
192 ビット ECDSA-384
256 ビット ECDSA-521

ECDSAでの鍵生成

BashOnWindows
ssh-keygen -t ecdsa -b 521 -N ""
# -t でアルゴリズム指定 -b でkey size指定 -Nでパスフレーズ指定
#ファイル名はid_ecdsaがデフォルト設定なのでそのままEnterすれば ~/.ssh/id_ecdsa とecdsa.pubができる

#作った公開鍵をサーバーへ転送
scp -i ~/.ssh/id_rsa -P 2222 ~/.ssh/id_ecdsa.pub username@example.com:~/.ssh/

#サーバーへ接続
ssh idcfCloud
#まずは現在の公開鍵をバックアップ
cp ~/.ssh/authorized_keys ~/.ssh/authorized_keys.old
#公開鍵を上書き
cat ~/.ssh/id_ecdsa.pub > ~/.ssh/authorized_keys
BashOnWindows上で実行
#ecdsaでssh認証できるか確認
ssh -i ~/.ssh/id_ecdsa username@example.com -p 2222

認証に問題なければバックアップファイルとRSAの秘密鍵は削除してOK
rm ~/.ssh/authorized_keys.old

SSH接続用configファイルも書き換える

BashOnWindows上で実行
vim ~/.ssh/config
#IdentityFile ~/.ssh/id_rsa #コメントアウト
IdentityFile ~/.ssh/id_ecdsa #追記

これで行けるはず。
ダメならsshdのrestartや、サーバー側の~/.ssh/authorized_keysのパーミッションが600になってるか確認
systemctl restart sshd.service
chmod 600 ~/.ssh/authorized_keys

セキュリティ

暗号方式について調べたときに知った副産物

/etc/ssh/sshd_config
#HostKey /etc/ssh/ssh_host_rsa_key #コメントアウト
AddressFamily inet #IPv4のみ
AllowUsers username #認証ユーザー指定、複数ユーザーはスペース区切り username username2

参考URL

いろいろssh設定について書いてある
http://www.nca.gr.jp/imgs/nca_ssh_server_config_v01.pdf

P13にビット安全性の一覧表がある
https://www.ipa.go.jp/files/000045645.pdf

http://labunix.hateblo.jp/entry/20160228/1456586770
https://blog.ayurina.net/2016/07/15/ssh%E9%8D%B5%E3%81%AE%E6%9A%97%E5%8F%B7%E5%8C%96%E6%96%B9%E5%BC%8F%E3%82%92%E5%BC%B7%E5%8C%96%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F%E3%80%82/
https://wiki.archlinuxjp.org/index.php/SSH_鍵
http://qiita.com/suthio/items/2760e4cff0e185fe2db9

ka_iwashita
Linux勉強の記録
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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした