喫茶XRAYトップページ

[スレッド全体
]

[11855] SSH 公開鍵認証返信 削除
2018/5/22 (火) 14:31:29 SO
こんにちは。

早速ですが、さくらインターネット< https://www.sakura.ad.jp/ >のsshサーバーに、
Tera Termで公開鍵認証を行っています。

Tera Termの手動による操作及び、手動によるTera Termマクロの認証は動作しているのですが、
タスクスケジューラ(ログインしているかどうかにかかわらす実行する)にて動作しません。

ぐぐって調べると、
http://www.illinternet.com/2017/11/05/teraterm%E3%83%9E%E3%82%AF%E3%83%AD%E3%82%92%E3%82%BF%E3%82%B9%E3%82%AF%E3%82%B9%E3%82%B1%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%A9%E3%81%A7%E8%87%AA%E5%8B%95%E8%B5%B7%E5%8B%95%E3%81%99%E3%82%8B%E3%80%82/
等にて、ユーザーがログオンしているかどうかにかかわらず実行する」を選択すると、バッチが動作しないと書かれています。

別の方法でも構いませんので、なにかご存知の方おられましたら、
教えてください。

# やりたいことは、ssh転送(ポートフォワーディング)を用いた、Mysqlのデータ同期です。

[11915] Re:SSH 公開鍵認証返信 削除
2018/6/6 (水) 22:12:37 taka
▼ SOさん
> こんにちは。
>
> 早速ですが、さくらインターネット< https://www.sakura.ad.jp/ >のsshサーバーに、
> Tera Termで公開鍵認証を行っています。
>
> Tera Termの手動による操作及び、手動によるTera Termマクロの認証は動作しているのですが、
> タスクスケジューラ(ログインしているかどうかにかかわらす実行する)にて動作しません。
>
> ぐぐって調べると、
> http://www.illinternet.com/2017/11/05/teraterm%E3%83%9E%E3%82%AF%E3%83%AD%E3%82%92%E3%82%BF%E3%82%B9%E3%82%AF%E3%82%B9%E3%82%B1%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%A9%E3%81%A7%E8%87%AA%E5%8B%95%E8%B5%B7%E5%8B%95%E3%81%99%E3%82%8B%E3%80%82/
> 等にて、ユーザーがログオンしているかどうかにかかわらず実行する」を選択すると、バッチが動作しないと書かれています。
>
> 別の方法でも構いませんので、なにかご存知の方おられましたら、
> 教えてください。


Tera Termの問題でしたら
ターミナルをPuttyに変更して試してみてはどうですか?

Tera Termより
Puttyのほうがユーザーが多いので自動化とかたくさんヒットしますよ。
 Putty 公開鍵認証 自動化
 Putty ポートフォワーディング


[11917] Re2:SSH 公開鍵認証返信 削除
2018/6/7 (木) 09:49:54 SO
▼ takaさん

情報、ありがとうおございます(^^

今は、Tera Termにてログインしっぱなしで、
データ同期のみバッチファイルにて動かしている状況です。

。。。Tera Termにてログインしっぱなしが気持ち悪いので、
Puttyを調べてみたいと思います。

[11919] Re3:SSH 公開鍵認証返信 削除
2018/6/7 (木) 22:34:56 taka
▼ SOさん
> ▼ takaさん
>
> 情報、ありがとうおございます(^^
>
> 今は、Tera Termにてログインしっぱなしで、
> データ同期のみバッチファイルにて動かしている状況です。
>
> 。。。Tera Termにてログインしっぱなしが気持ち悪いので、
> Puttyを調べてみたいと思います。

PuTTYでテストしてみました。
結果として、Tera Termと同じ現象です。

ログインしていないとトンネリングできないみたいです。

試しにトンネリングだけタスクスケジュールにいれて実行すると
タスクの一覧にきちんとプログラムが表示されていますが

mysqladmin ping -h localhost -P 3307 -u test
と打つとエラーが返ってきます

ログイン中でないと新しいポートの割り当てができない仕様なのかもしれないです。
トンネル接続が特殊なのかもしれないので、ポート開けるだけのプログラムで実験してみないとわかりません。

powershellを使えば
 Start-Process
 timeout
 Start-Process -Wait
 Stop-Process
を組み合わせると閉じるところまで自動化できます

# タスクの設定: プログラム/スクリプト
#   %SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe
# 引数の追加(オプション)
#   -ExecutionPolicy RemoteSigned -File c:\tmp\test_task.ps1

putty="C:\pathto\PuTTYPortable\App\putty\putty.exe"
$remote_user="user"
$remote_pass="pass"
$remote_host="hostname"

try{
  # プロセスを実行+未待機
  $process = Start-Process "$putty" -ArgumentList "-ssh -L 3307:127.0.0.1:3306 $remote_user@$remote_host -pw $remote_pass -N" -PassThru

  # 指定秒数待機する(接続したであろう時間適当に待つ)
  timeout 10

  # 何か実行する
  # Start-Process  ... -Wait
} finally {
  # 起動したPUTTYを強制的にシャットダウン
  Stop-Process -InputObject $process
}


[11920] Re4:SSH 公開鍵認証返信 削除
2018/6/8 (金) 13:39:37 taka
以下のコードをコンパイル登録して

rocedure TForm1.FormCreate(Sender: TObject);
begin
  IdHTTPServer1.Active := True;
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  IdHTTPServer1.Active := False;
end;

procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext;
  ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
  AResponseInfo.ContentText := 'Hello';
end;

タスクスケジュールの未ログインに
Indyでポート80を開けて
別のユーザーでhttp://localhost/が閲覧できるのでポートの割り当てができないというわけではないようです。

そこで cygwinをインストールしてあるのを思い出したので
cygwinのsshで keyを設定して
タスクに登録して ポートフォワーディングをすると 未ログイン状態でつながりました。
 ※ runas /profile /user:ユーザー名 "C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico -"
 で ログインしてcygwin用のプロファイルを作成し、sshの設定を事前にしておく

C:\cygwin\bin\ssh.exe -L 3307:127.0.0.1:3306 ユーザー@ホスト -N


Tera TermやPuTTYはなんか触っちゃいけないとこにアクセスしているようです。


cygwinをインストーしていない場合はとてつもないファイルのごみが増えて
セキュリティソフトの検索やデフラグなどに時間がかかるようになったりする弊害があるので
そのままインストールせずに
ディスク管理を開いて
ディスクのパーティションを1個を c:\cygwinに割り当てるなどしたほうがいいです。
 http://www.atmarkit.co.jp/ait/articles/0002/05/news001.html
うちは5GBほど割り当ててます。
・ドライブ文字は割り当てない
・c:\cygwinに割り当て


Win32-OpenSSHはunixのパクリらしいので
powershellのsshでも動くかもしれません。



[▼次のスレッド]
INCM/CMT
Cyclamen v3.82