喫茶XRAYトップページ

[スレッド全体
]

[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でも動くかもしれません。



[11921] Re4:SSH 公開鍵認証返信 削除
2018/6/8 (金) 14:20:54 taka
Win32-OpenSSH
でもタスク未ログインで接続できるようです
ただし、動作が遅いようで接続完了するまでに時間がかかるようです。

事前に、一度 スケジュールするユーザーで
ssh.exe ユーザー@ホスト
で認証を完了させておく必要があります。

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

$ssh="C:\tmp\OpenSSH-Win32\ssh.exe"
$ssh_args="-L 3307:127.0.0.1:3306 ユーザー@ホスト -N"

# プロセスを実行+未待機
Start-Process "$ssh" -ArgumentList "$ssh_args" -RedirectStandardError "C:\tmp\test_task_ssh.ps1.err.log"


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