【Debian】sudoとsshと鍵
お試し環境のDebianにはrootでsshでパスワード手入力で接続していたけれど、
セキュリティ強化の意味もあるので、手入力のパスワードを無効にして、鍵のみで接続するように設定変更する。
あと、その他諸々。
rootでsshでログイン。
※TeraTerm使いました。
sudoが入ってなかったので、
$apt-get install sudo
でsudoをインストール。
新しいユーザーを、
$useradd ユーザー名
で作成。
パスワート以外は特に指定せず。
visudoでsudoの設定を開き、
# User privilege specification 作ったユーザー名 ALL=(ALL) NOPASSWD:ALL
作ったユーザー名の権限を追加。
とりあえずは「NOPASSWD:ALL」で全部パスワードなしでsudoできるように。
【注意】
visudoの編集が間違っていた場合、エラー行が表示されたりします。
で、「sudoers file busy, try again later.」の様なメッセージがでて、
visudoが編集できなくなる事があります。
私の場合は、Debianを再起動する事で編集可能になりました。
エラーでファイルつかみっぱなしになってるんでしょうかね?
ここで新しく作ったユーザーでsshでログインしなおす。
※rootのままsudoでユーザー指定して実行してもいいけど。
$ssh-keygen
でキーを作成。
パスワード等を聞いてくるけど、何も指定せずにgo。
/home/ユーザー名/.sshフォルダ内に、下記のファイルが出来ます。
id_rsa:秘密鍵
id_rsa.pub:公開鍵
「id_rsa:秘密鍵」ファイルを使っているwindowsPCにコピーし、Debian上から削除。
※TeraTermの「ファイル」メニュー内の機能でPCにコピーできます。
「id_rsa:公開鍵」はデフォルトで利用してくれる名称に変更(コピー)し、アクセス権限を付与する。
$cat /home/新しいユーザー名/.ssh/id_rsa.pub > /home/新しいユーザー名/.ssh/authorized_keys $chmod 600 /home/新しいユーザー名/.ssh/authorized_keys
で、最後にsshd_configファイルを開いて、下記の設定になっているか確認する。
異なっていたり、#がついていたら直す。
$vi /etc/ssh/sshd_config RSAAuthentication yes PubkeyAuthentication yes PasswordAuthentication no
他の設定値はデフォルトで大丈夫だった。
authorized_keysのパスも確認した方がいいかも。
これでパスワードでのログインが出来ず、鍵を使ったログインしか出来なくなっているはず。
もっとこうした方がセキュリティが高まる等、色々あると思いますが、
とりあえず今日はここまで。