zuntan02のはてなブログ

備忘録的なものです

CentOS6にssh公開鍵認証を設置する

http://www.websec-room.com/2014/01/18/1647
上記より

1)キーペアの作成
2)公開鍵認証のログイン設定
3)秘密鍵のダウンロード
4)Tera Term を使用して公開鍵認証による SSH ログイン
5)公開鍵認証でのみログインするようにする

を参考にさせていただきました。


【作業メモ】
※鍵ペアはユーザー各々で作成します。
 よって、鍵ペアを作成するユーザーでサーバー側にログインして作業します。

# ユーザー:usernameの例
su - username
cd /home/username
ssh-keygen -t rsa
# Enter passphrase (empty for no passphrase):
# パスフレーズが不要ならブランクで
# 配置先はデフォルトの前提


2)公開鍵認証のログイン設定
# 下記コマンドを実行して、公開鍵を公開鍵認証で使用できるようにします。
chmod 700 /home/username/.ssh
cd /home/username/.ssh/
mv id_rsa.pub authorized_keys
chmod 600 authorized_keys

# sshd_configでPubkeyAuthenticationを許可
→デフォルトでPubkeyAuthentication yesとなっていますので、特にコメント外す必要なし。
→Noになっている場合はYesにしておく。
su -
vi /etc/ssh/sshd_config

        • -

PubkeyAuthentication yes

        • -

# 反映
service sshd restart


# テスト
cd /home/username
ssh -i /home/username/.ssh/id_rsa username@サーバIP

# うまくいかないときは/var/log/secureを確認。ディレクトリの権限に問題
# (例:ホームディレクトリに他者からの書き込み権があるなど)があると動作しません。
# 例
# sshd[xxxxx]: Authentication refused: bad ownership or modes for directory /home/username
# →/home/usernameの権限が777になっていた。。。
# chmod 755 /home/username

→パスワードなくログインできることを確認。OK

3)秘密鍵のダウンロード
# →WinSCPでダウンロードします
id_rsaをダウンロード。

4)Tera Term を使用して公開鍵認証による SSH ログイン
上記id_rsaを鍵ファイルとしてユーザ名のみでログインできることを確認

5)パスワード認証をOFF
vi /etc/ssh/sshd_config
# 66行目:パスワード認証不可に変更
PasswordAuthentication no

# 反映
service sshd restart



■同一の鍵を利用するサーバが複数ある場合、他サーバに反映
chmod 755 /home/username/
cd /home/username
chmod 700 /home/username/.ssh/
cd /home/username/.ssh
vi authorized_keys

        • -

ssh-rsa xxxxx……

        • -

chown username:username /home/username/.ssh/authorized_keys
chmod 600 /home/username/.ssh/authorized_keys

vi /etc/ssh/sshd_config
# 66行目:パスワード認証不可に変更
PasswordAuthentication no

# 反映
service sshd restart

広告を非表示にする