SSHでtrixbox(もちろんLinuxでもMACでもOK)にパスワードなしでログインする方法
最近、かなり忙しくってブログさぼっていたら、こないだ友人に「やっぱくじけたか・・・。」とボソッと言われたので久々の更新。
ブログネタは結構多いけど、文章にする時間が無くってさ・・・。ふん。
今日は、以前書いた「trixboxにSSHで接続する方法」をちょいとレベルアップしてみます。
通常、SSHで接続する度にパスワードを聞かれますが、今日はパスワードを入力しなくても良くって、良くもまぁと思うほど色々な名前でログインを試みてくる知らない人からもサーバーを守れる方法を書きたいと思います。
Windowsの方は、trixboxProFAQの「RSA認証でtrixboxを保護する」を読んでください。
ウチはいつもの事ながら、MACからの利用法です。
MACのターミナルを起動してローカルマシン上で ssh-keygen というコマンドを使って公開鍵・秘密鍵のペアを作成します。
って表示されて自分のホームディレクトリの下にある~./sshにid_dsa と id_dsa.pub という 2つのファイルができあがります。
$ ssh-keygen -t rsaGenerating public/private rsa key pair.
Enter file in which to save the key (生成先): ←そのままでEnter
Enter passphrase (empty for no passphrase): ←パスフレーズを入力
Enter same passphrase again: ←パスフレーズを再入力
Your identification has been saved in (生成先)/id_rsa.
Your public key has been saved in (生成先)/id_rsa.pub.
The key fingerprint is:
*********
どちらもテキストファイルで、この 2つが鍵ペアとなり、拡張子 .pub はその名の通り公開鍵(public key)だから、こちらの方をリモートのサーバに転送します。
Linuxとかだと、ssh-copy-id でコピーすると手っ取り早いけど、残念ながらMACにはssh-copy-idと言うコマンドはありません。
ターミナルから下の方法を実行すれば、一発でOKです。
trixboxだと、rootになるでしょうから実例だと
# cat .ssh/id_rsa.pub | ssh remote_username@remote_host.com "cat >> .ssh/authorized_keys"
でOKです。
# cat .ssh/id_rsa.pub | ssh root@s123456.trixbox.fonality.com "cat >> .ssh/authorized_keys"
実際にSSHで接続すると、いままでパスワードを聞いてた所で、何にもなしでログイン出来るようになりました。
便利ですな。
# ssh -l root s123456.trixbox.fonality.com
あとは、今までID/PWでログインしていたtrixboxをRSA認証キーだけを受け付けるように変更することです。trixboxにSSHでアクセスし、以下を実行します。
あとはサービスを再起動します。
# vi /etc/ssh/sshd_configPasswordAuthentication no ←yesをnoに書き換える
上書き保存をしてviを終了してください。
:wq
これでID/PWでのログインは出来なくなっているはずですので、知らない人からのID/PWの連射攻撃を喰らっても偶然ログインは出来なくなっているはずです。
service sshd restart
試しにID/PWでのログインを行ってみて、ログインできなければ成功です。
ID/PWのログインより楽で安全ですから、必ず行うことをオススメします。