何回この鍵ではまるか分からないんですけど、もうほんと今日で最後にしたいと思います。要所をメモしていきます。
INDEX
ユーザーを作成する
SSH用のユーザーを設定します。やり方はこんな感じ。
useradd hoge | |
passwd hoge //ユーザー名を入れます | |
Changing password for user user_name. | |
New password: hogehogeman //パスワードを設定 | |
Retype new password: hogehogeman | |
passwd: all authentication tokens updated successfully. | |
chmod 701 /home/hoge |
ディレクトリの権限とかも変えておきましょう
TCP Wrapperの設定
inetdを起動できるようにするものらしいです。inetdは指定したポート番号にTCPorUDPパケットが来た場合に対応するプログラムを起動してコネクションを制御してくれます。なんか難しい書き方ですけど、要は必要な時に必要なインターネットサービス(telnetとかFTPとか)を起動してくれるものらしいです。で、SSHでもこれを設定セヨって人が居るってことはSSHにも関係があるってことでしょうね多分。
echo "sshd: ALL" >> /etc/hosts.allow | |
echo "ALL: ALL" >> /etc/hosts.deny |
こんな感じで設定します。/etc/hosts.allow接続を全てのホストから許可し、/etc/hosts.denyで全ての接続を拒否しますがallowで許可したものは省きます。ホワイトリスト的なものなんでしょうか。誰か教えて下さい。
鍵を作る
結構手順が色々前後しますけど、要は公開鍵と秘密鍵を作って公開鍵をauthorized_keysに保存してsshの設定を書き換えれば設定が完了となるわけです。何となく分かる人は、別に手順無視でも大丈夫だと思います。で、鍵の作り方ですが、windowsとmacで違います。windowsはputtyってツールを作って鍵を作成します。teratermでも作れます。
鍵の作り方windows
・puttyなら下記リンクの参照
PuTTY で鍵交換方式による SSH 接続
・teratermなら
1.設定→SSH鍵生成→鍵の種類はRSA→ビット数は2048で生成をクリック
2.作成が完了したら鍵のパスフレーズを入力パスフレーズの確認を入力して公開鍵と秘密鍵を保存します。
*秘密鍵の名前を変えるとログインできなかったので、変えないほうが良いと思います。
macの場合
SSHの公開鍵を作成しGithubに登録する手順ここに詳しく載ってます。
公開鍵をアップロード
公開鍵をサーバーへアップロードします。ファイル転送しなくても適当なファイルをユーザディレクトリに作って内容コピーでも大丈夫な気がします。
公開鍵アップロードのやり方
作成前に、自分のユーザディレクトリにアクセスした方が良いです。
1 | cd /home/hoge |
teratermでのやり方として1例だけ上げておきます。
authorized_keysの作成方法
公開鍵がアップロードされてる前提で話を進めます。
cd /home/hoge | |
mkdir .ssh | |
chmod 700 .ssh //このディレクトリは700 | |
cat アップロードした公開鍵の名前 > .ssh/authorized_keys | |
chmod 600 .ssh/authorized_keys //.sshのファイルが600 | |
rm -rf アップロードした公開鍵の名前 | |
//ちなみに僕はディレクトリの権限600にしちゃって今日暫くはまりました。 | |
//ディレクトリの権限は700にしてね! |
こうやればおっけーです。
sshd_confの設定
はい、そしてようやくSSHの設定に行きます。
何を設定するの?
- rootログインの禁止
- 空パスワードでのログイン禁止
- パスワード認証の禁止
- 公開鍵認証の許可
- 認証鍵の場所
- ChallengeResponseAuthenticationの禁止*1
設定のやり方
vi /etc/ssh/sshd_conf | |
//ファイルを開いたら下記項目を探す | |
//viはiで書き込みができる保存する時はw;閉じたい時はq;を押す | |
PermitRootLogin no //ルートログインの禁止 | |
PermitEmptyPasswords no //空パスの禁止 | |
PubkeyAuthentication yes //コメント解除 公開認証の許可 | |
AuthorizedKeysFile .ssh/authorized_keys //コメント解除 authorized_keysの場所 | |
PasswordAuthentication no //noにする | |
AllowUsers hoge //最終行に作成したユーザーを追加する |
接続ポート変えたりするとブルートフォースの対策になりますが、説明のしかた間違うと怖いのでもう少し調べてからにします。いやもう既にやばいかも知れませんがネェ。