2014年8月25日月曜日

centos ssh version 2 設定

SSHの設定

最初にリモートログインをホスト名を使ってつなげるようにする。
/etc/hosts.allow

sshd:ALL
と記述。
(ホスト名ではなくてIPアドレスで指定すれば、sshd:ALLと記述しなくてもつながる。)

次に鍵セットを作っていく。
(ここではユーザー名をUserNameとする。)

SSH プロトコル・バージョン2の鍵セットは2種類あり、自分はRSAを使う(rsa1はバージョン1用)。

鍵セット、RSAとDSAの違い。

RSA--ユーザ認証と通信の暗号化を行う。
DSA--ユーザー認証の暗号化だけを行う。
一般的にはRSAが使われるらしい。

自分はRSAを使っている(自分の昔のメモを見て知った。設定をしたときは知っているけど、作り終えればすぐに忘れてしまう)。

レンタルサーバーを使っている場合は、クライアント側で鍵ペアを作る。
今回はサーバー側で鍵を作ってクライアント(Windows)に秘密鍵を移動し、puttyで使用する。

最初に鍵を作りたいユーザーでログインする。
     ここでユーザーを新しく作るときは
          # useradd UserName
          # passwd UserName

ユーザー名が表示されないとき(自分の場合は何故か表示されなくなってしまった。-bash-4.16などと表示される。何故だ?後述: ユーザーディレクトリをsambaで共有させるとそうなってしまうみたいだ。sambaの共有を解除したら正常になった。どっちみち公開サーバーにはsambaは使わない。)は
whoami
でユーザー名表示
現在の場所は
pwd
で確認できる。

---------------------------------------------------------------------------------
今はrootになる必要はないが、suに"-"をつけたときとつけないときの違いを見つけたので一応メモ
"su"  rootユーザに切り替わるがrootユーザ環境にはならない。

"su -"  rootユーザになりrootユーザの環境を使用する(ユーザーとディレクトリ、共にrootに移動)。

ユーザーの切り替えも同じ
"su UserName"
"su - UserName"
正確な違いがわかない。"-"をつけとけば無難。
---------------------------------------------------------------------------------

次に、鍵の作成。
$ ssh-keygen -t rsa
ここで、保存場所とパスフレーズを入力。
(このパスフレーズはスペースも使える。)


できた秘密鍵と公開鍵がそれぞれ
UserName/.ssh/id_rsa
UserName/.ssh/id_rsa.pub
になり、
公開鍵、id_rsa.pubを
UserName/.ssh/authorized_key
に追加する。(authorized_keyはテキストファイル。存在しなければcatで付け加えるときに新たに作られる。)

$ cat /home/UserName/.ssh/id_rsa.pub >> /home/UserName/.ssh/authorized_keys

公開鍵をユーザ自身だけにアクセスできるように変更。
#chown UseName:UserName /home/UserName/.ssh/authorized_keys
#chmod 600 /home/UserName/.ssh/authorized_keys

公開鍵の削除
#rm -f /home/UserName/.ssh/id_rsa.pub

ここから先はWindows側
puttyから操作をするように設定をする。

秘密鍵をWindows側にFTPを使うなりなんなりして適当なWindows側フォルダーにコピーをして
puttyが使える形に秘密鍵を変換するためのputty付属のputtygen.exeを立ち上げる。

「File」 > 「Load private key」
で秘密鍵を読み込んで、
パスフレーズを入力。

「File」 > 「Save private key」
で適当な名前をつけて、適当な場所に保存。
ここで、puttygen.exeを閉じる。

次にputty本体を立ち上げて
「Category」 > 「Connection」 > 「SSH」 > 「Auth」
で、秘密鍵の場所の指定をする。

SSHの公式ポートは22/TCPになっている。
そこいら辺は空いてるポートを適当に。


以下、
/etc/ssh/sshd_config
の編集。

rootでのログインを禁止しておく。
#PermitRootLogin yes

PermitRootLogin no

通常パスワードを禁止しておく
#PasswordAuthentication yes

PasswordAuthentication no

空パスワードを禁止しておく。
#PermitEmptyPasswords no

PermitEmptyPasswords no

最後にSSHの再起動。
# service sshd restart

0 件のコメント:

コメントを投稿