先日のBuffalo LS-VL SSHログイン化ですと作業の無駄が多いのでもっと簡単に出来るようにしてみました。acp_commander.jarのお世話になるやり方に変更はありません。firmware Ver.1.52, Ver.1.54, Ver.1.56にて確認済です。この施策による責任は一切負いません。あくまで自己責任でお願い致します。
- sshlogin.sh
sshlogin.zipをダウンロードし、解凍して出来た以下のsshlogin.shをLS-VLのshareフォルダへ転送します。中身はなんてことはない、rootパスワードを潰し、sshd_configを書き換えてるだけです。前回やったのと基本的には同じで、2つの処理を1ファイルにまとめただけです。- sshlogin.sh
#!/bin/sh . /etc/profile # /etc/shadow perl -i.org -pe 's/root:[^:]*?:/root::/' /etc/shadow # /etc/sshd_config perl -i.org -pe 's/#PermitRootLogin yes/PermitRootLogin yes/; s/PermitRootLogin no/#PermitRootLogin no/; s/#PasswordAuthentication yes/PasswordAuthentication yes/; s/#PermitEmptyPasswords no/#PermitEmptyPasswords no\nPermitEmptyPasswords yes/' /etc/sshd_config
- acp_commander.jar
次にNAS-Centralに行きacp_commander.jarを拾ってきます。コマンドプロンプトにてacp_commnader.jarからsshlogin.shを実行します。
acp_commnader.jarは同一ネットワークセグメントからしか実行できません。jar実行にはJava(JREでOK)が必要です。Javaへのパスが通ったコマンドプロンプトから以下のように実行します。
[cc lang=”dos” theme=”blackboard”] > java -jar acp_commander.jar -t-pw -s
[/cc] acp_commnader.jarの「-s」オプションはワンライナーの実行しかできません。「/root>」プロンプトで1回だけコマンドを実行できます。複数回行う場合は、その都度接続します。また1行210文字の制限もあります。
LS-VLのIPアドレスが192.168.0.11とすると以下のようになります。-pwはWeb画面のadminパスワードです。> java -jar acp_commander.jar -t 192.168.0.11 -pw xxxxxxxx -s
ACP_commander out of the nas-central.org (linkstationwiki.net) project.
Used to send ACP-commands to Buffalo linkstation(R) LS-PRO.
………………….
Enter telnet commands to LS, enter ‘exit’ to leave
/root> /mnt/disk1/share/sshlogin.sh- sshdリロード
> java -jar acp_commander.jar -t 192.168.0.11 -pw xxxxxxxx -s
/root> kill -HUP `cat /var/run/sshd.pid `sshのリロードまたはLS-VLを再起動しますと、rootユーザでパスワードは空でログインができるはずです。あとはなんでもできますので、sshd_configの「PermitEmptyPasswords no」にしたり、rootに新パスワードを設定しておきます。
- sshdリロード
ファームウェアを更新しますとsshd_configが元に戻ってしまうようですのでファーム更新の度に上記を実行します。
また、このままですとrootユーザによるsftpはPAMにより蹴られてしまいますのでrootユーザでsftpもしたい場合は以下のように/etc/ftpusersのrootをコメントしておきます。PAMの設定元は/etc/pam.d/sshdです。
- /etc/ftpusers
# vi /etc/ftpusers
#root bin deamon sys adm sync shutdown halt operator nobody