SSH †
インストール †
Vine Linux は標準でインストールされますが、Debian GNU/Linux のパッケージ管理システム apt でインストールする際は、
# apt-get install ssh
としたあと、いくつか質問がされますが、
- SSH1/SSH2 両サポートとする
- デーモンとして起動する
ようにしてください。
サーバとしての設定 †
/etc/ssh/sshd_config †
チャレンジアンドレスポンス認証を有効にする
以下の部分を変更します。
# Change to no to disable s/key passwords #ChallengeResponseAuthentication yes ChallengeResponseAuthentication no
となっている部分を
# Change to no to disable s/key passwords ChallengeResponseAuthentication yes #ChallengeResponseAuthentication no
と変更して sshd を再起動してください。
root ユーザのリモートログインを許可する
以下の部分を変更します。
PermitRootLogin no
となっている部分を
PermitRootLogin yes
と変更して、sshd を再起動してください。
リモートホストにパスワードなしでログインする †
主に rsync などを cron で運用する際、root ユーザーでローカルホストからリモートホストにパスワードなしでログインできる環境を設定します。
ただし、この設定は秘密鍵などが盗まれるなどの事態が起こった場合、甚大な被害を被る可能性があります。この設定を行う際は、十分にセキュリティーを確保した環境で行うようにして下さい。
root ユーザーで SSH を可能にする †
ローカルホストでの作業より始めます。まずは root ユーザーで SSH ログインが可能な設定になっているかを確認してください。
/etc/ssh/sshd_config のに以下の設定が記載されているか確認してください。
PermitRootLogin yes
秘密鍵・公開鍵のペアを作成する †
以下のコマンドでパスフレーズが空の秘密鍵、公開鍵のペアを作成します*1。
ssh-keygen -t dsa -N "" -f /root/.ssh/sshkey
以上のコマンドを実行すると、/root/.ssh/ 以下に sshkey (秘密鍵)、 sshkey.pub (公開鍵)が生成されます。
リモートホストに公開鍵を転送して追加する †
次にローカルホストで作成した公開鍵 (sshkey.pub) を scp やリムーバブルメディアを使ってリモートホストに転送します。
リモートホストに root ユーザでログインし、転送した公開鍵が /root/.ssh/sshkey.pub として、以下のコマンドを実行します。
cat /root/.ssh/sshkey.pub >> /root/.ssh/authorized_keys
以上の設定が終わると、ローカルホストから root ユーザで、以下のように秘密鍵を指定して ssh を実行するとパスワードを問い合わせられることなく、リモートホストにログインできるようになります。
ssh -i /root/.ssh/sshkey root@remotehost.local
秘密鍵、公開鍵を保存するディレクトリを変更すれば、他のユーザーでも同様のことができるはずです。
ただし、繰り返しになりますが、秘密鍵が盗まれるなどの事態が起こった場合、セキュリティー的に大きな穴を作ることになります。
この設定は、十分にセキュリティーが確保された環境で行うようにしてください。