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 件のコメント:
コメントを投稿