Linuxのssh設定 ~ centos ~
新しいサーバー建てる度にググるのめんどうだからメモっとく。
公開鍵をサーバーに置いて、秘密鍵を使ってクライアントからログインするところまで。
- 鍵ペアをクライアント側で作成
- 公開鍵をサーバーへ
- sshサーバー設定
- ユーザー追加
- クライアント設定
鍵ペアをクライアント側で作成
# 鍵ペア作成 $ cd ~/.ssh $ ssh-keygen -t rsa
ssh-keygenでは、デフォルトでid_rsa.pub(公開鍵)とid_rsa(秘密鍵)が作られる。
ファイル名を指定するときは、
$ ssh-keygen -t rsa -f hoge # >> hoge.pub & hoge
公開鍵をサーバーへ
$ scp id_rsa.pub root@remoteserver.com:~/
サーバー建てた後はrootでログインできたり、コンソールログで操作できると思うので、何かしらの方法で、サーバーにログインする。
# rootでログイン
$ ssh root@remoteserver.com
サーバーにログインしたら、~/.sshディレクトリを作る(無ければ)
$ mkdir -p ~/.ssh # パーミッション変更 $ chmod 700 ~/.ssh
sshサーバーは公開鍵を~/.ssh/authorized_keysに置く
$ cd ~/.ssh $ cat id_rsa.pub > authorized_keys # パーミッション変更 $ chmod 600 authorized_keys
sshサーバー設定
基本的にrootログインとか、パスワードログインはできないほうがいいので、その辺りを設定する。
$ vim /etc/ssh/sshd_config # rootログイン禁止 PermitRootLogin no # パスワードログイン禁止(鍵使う) PasswordAuthentication no # sshサーバーをリスタート $ /etc/rc.d/init.d/sshd restart
ユーザー追加
centosにhogeuserを作成する。
# ユーザー追加 $ useradd hogeuser # パスワード設定 $ passwd hogeuser # hogeuserをwheelグループに追加 $ usermod -G wheel hogeuser # wheelグループにsudoを許可 $ visudo # %wheel ALL=(ALL) ALL # 次のように変更 %wheel ALL=(ALL) ALL
ユーザーの確認は、cat /etc/passwd でできる。
ここまでできたら、ログアウトしてクライアントの設定。
クライアント設定
ログインできるか試してみる。
$ ssh -i ~/.ssh/id_rsa hogeuser@remoteserver.com
コマンド長くて、しちめんどくさいので、~/.ssh/configに書いとく。
$ vim ~/.ssh/config Host hoge User hogeuser HostName remoteserver.com IdentityFile ~/.ssh/id_rsa
これで楽チンログイン。
$ ssh hoge