レンタルサーバのCORESERVERのサーバにSSHでログインするためには、一度Webページの管理画面よりホスト登録をした後、接続を行う必要がある。登録しないと接続は全て弾かれる。
これは、CORESERVERのセキュリティ管理上の仕様のようだけど、ハッキリ言って面倒くさい。SFTP(Secure File Transfer Protocol)接続するとしても、Subversionのレポジトリとして利用するとしても、SSHを利用する場合は必ず登録しなくてはならない。
で、これを多少簡略化しようと思って作ったのが以下のWSHスクリプト。WSHスクリプトなので当然Windows専用。
拡張子をjsにしたテキストファイルにスクリプトをコピー&ペーストした後、UserName, PassWord, HostNameを変更すれば使える。
これは、Coreserver(XREAも?)のssh登録が面倒なので – WebProgを極めて居酒屋を開発するを参考にした。
やってる事は、IEを開いてページを直接操作しているだけ。スクリプト中の「ダイアログ定数」の中身はあまり気にしないように。自前でテンプレート化しているだけなので。
/*<ユーザー設定>***************************************************************/ var UserName = "name"; var PassWord = "pass"; var HostName = "s16.coreserver.jp"; /******************************************************************************/ /*<ダイアログ定数>*************************************************************/ // 表示ボタン var MessageBoxButtons = { "OK" : 0, // [OK] "OKCancel" : 1, // [OK][キャンセル] "AbortRetryIgnore" : 2, // [中止][再試行][無視] "YesNoCancel" : 3, // [はい][いいえ][キャンセル] "YesNo" : 4, // [はい][いいえ] "RetryCancel" : 5 // [再試行][キャンセル] } // 表示アイコン var MessageBoxIcon = { "None" : 0, // なし "Critical" : 16, // 警告メッセージアイコン [STOP] "Question" : 32, // 問い合わせメッセージアイコン [?] "Exclamation" : 48, // 注意メッセージアイコン [!] "Information" : 64 // 情報メッセージアイコン [i] } // フォーカスボタン var MessageBoxDefaultButton = { "Button1" : 0, // 1番目のボタンにフォーカス "Button2" : 256, // 2番目のボタンにフォーカス "Button3" : 512 // 3番目のボタンにフォーカス } // モーダル var MessageBoxModal = { "Application" : 0, // アプリケーションモーダル "System" : 4096 // システム モーダル } // 選択結果 var DialogResult = { "OK" : 1, // [OK] "Cancel" : 2, // [キャンセル] "Abort" : 3, // [中止] "Retry" : 4, // [再試行] "Ignore" : 5, // [無視] "Yes" : 6, // [はい] "No" : 7, // [いいえ] "Over" : -1 // 時間経過 } /******************************************************************************/ var Shell = new ActiveXObject("WScript.Shell"); var IE = new ActiveXObject("InternetExplorer.Application"); try { IE.Visible = false; IE.Navigate("https://ss1.coressl.jp/" + HostName + "/jp/admin.cgi"); while (IE.Busy) { WScript.Sleep(100) }; IE.document.getElementsByName("id")[0].value = UserName; IE.document.getElementsByName("pass")[0].value = PassWord; IE.document.getElementsByName("explain")[0].click(); while (IE.Busy) { WScript.Sleep(100) }; IE.document.getElementsByName("telnet")[0].click(); while (IE.Busy) { WScript.Sleep(100) }; IE.document.getElementsByName("ssh2")[0].click(); while (IE.Busy) { WScript.Sleep(100) }; var result = Shell.Popup( "登録が完了しました。\n接続可能となるまで5分間待機中…", 60*5, WScript.ScriptName); if (result == DialogResult.Over) { WScript.Echo("5分経過しました。\n接続を確認してください。"); } } catch(e) { WScript.Echo(e.description); } finally { IE.Quit(); }
ちなみに、スクリプト実行後は5分ぐらい待たないと接続可能にならない。これは、CORESERVERの面倒な仕様のせい。何だかなぁ。
コメントを残す