উইন্ডোজ থেকে স্বয়ংক্রিয় এসএসএইচ টানেলিং


32

আমি সর্বদা আমার লিনাক্স সার্ভারে দুটি এসএসএইচ টানেল রাখার জন্য একটি উইন্ডোজ কম্পিউটার সেটআপ করার চেষ্টা করছি।

বর্তমানে, আমি দুটি এসএসএইচ টানেল খোলার জন্য পিটিটিওয়াই ব্যবহার করছি: আমি পুটিটিতে সার্ভারে লগ ইন করি, এটি ছোট করে রাখি, এবং কখনই এটি স্পর্শ করি না। এসএসএইচ সংযোগ হ্রাস না হওয়া ব্যতীত এটি ভালভাবে কাজ করে: পুটিটি একটি ত্রুটি বার্তা প্রদর্শন করে এবং আমাকে নিজেই ত্রুটিটি বন্ধ করে সার্ভারের সাথে পুনরায় সংযোগ স্থাপন করতে হবে।

আমি যা করতে চাই তা হল একটি অ্যাপ্লিকেশন যা দুটি এসএসএইচ টানেল সেট আপ করতে পারে এবং একটি পাসওয়ার্ড প্রবেশ করানো সহ ম্যানুয়ালি কিছু করার প্রয়োজন না করে স্বয়ংক্রিয়ভাবে পুনরায় সংযোগ করতে পারে। দুটি টানেলের মধ্যে আমি যে ডেটা পাঠাচ্ছি তা হ'ল ভিএনসি সংযোগ, সুতরাং আমি প্রায়শই ত্রুটিগুলি পরিষ্কার করতে এবং পাসওয়ার্ডগুলি প্রবেশ করার জন্য মেশিনে থাকি না। দুটি টানেল হ'ল একটি স্থানীয় টানেল এবং একটি রিমোট টানেল।

(হ্যাঁ, আমি এসএসএইচে স্বয়ংক্রিয়ভাবে লগ ইন করার বিপদগুলি সম্পর্কে অবগত রয়েছি I'm

আমি এই প্রশ্নটি পেয়েছি: কীভাবে নির্ভরযোগ্যভাবে একটি এসএসএইচ টানেলটি খোলা রাখবেন? , তবে এটি লিনাক্সকে এসএসএইচ ক্লায়েন্ট হিসাবে ব্যবহার করছে এবং আমি উইন্ডোজ ব্যবহার করছি।


2
সঠিকভাবে সম্পন্ন হলে স্বয়ংক্রিয় লগইন কোনও বিপত্তি নয়। এসএসএইচ পাবলিক-কী প্রমাণীকরণ সন্ধান করুন
মাধ্যাকর্ষণ

আমি এখন ম্যানুয়াল লগইনগুলির জন্য এটি করছি, তবে আমি বিশ্বাস করি যে পিটিটিওয়াই চাবিটি ফাঁকা পাসওয়ার্ড রাখতে দেয় না।
ডেভিড ইয়াউ

অবশ্যই আছে।
মাধ্যাকর্ষণ

আমি অবশ্যই পিটিটিওয়াই ডকুমেন্টেশনের কিছু ভুল বুঝেছি। আমি সম্ভবত "আমরা আপনার জন্য প্যাটটি আপনার পাসওয়ার্ডটি স্বয়ংক্রিয় টাইপ করব না" পড়তে পেরেছি এবং ধরে নিয়েছি যে কীটিতে পাসওয়ার্ডগুলিও দরকার ছিল।
ডেভিড ইয়া

উত্তর:


14

বিটভিজ টানেলিয়ার চেষ্টা করে দেখুন - এটি আমার পক্ষে কাজ করে। আমি কেবল ট্রে আইকন হিসাবে দৃশ্যমান থাকার সময় এসএসএইচ টানেলগুলি স্থাপন করতে সেট করেছি set এটি স্টার্টআপে এসএসএইচ সংযোগ স্থাপন করে এবং একটি কাট কাটার পরে বা সিস্টেমটি ঘুমিয়ে যাওয়ার পরে সংযোগ পুনরুদ্ধার করার সাথে সাথে এটি পুনরায় প্রতিষ্ঠিত করে। আমি এখনও পুট্টি কনসোলের চেহারা পছন্দ করি তাই আমি এটি ব্যবহার করতে থাকি - তবে টানেলগুলি ধরে রাখার জন্য আমি এখন টানেলিয়ার ব্যবহার করি। আমি খুঁজে পেল একমাত্র বড় ক্ষতি side আইপিভি support সাপোর্টের অভাব, যা পুট্টি কোনও ব্যবহারকারীর ক্রিয়া প্রয়োজন নেই।


আমি এখন কয়েক মাস ধরে এটি ব্যবহার করছি। এটি ঠিক ঠিক: সিস্টেম ট্রেতে বসে, সংযোগ বিচ্ছিন্নতা এবং এমন কোনও অভিযোগকারী কোনও পপআপ বন্ধ করে দেয় এবং এটি টানেলগুলি উন্মুক্ত রাখে। আমি যদি এখনও সংযোগটি নিয়ে খুব বেশি কাজ করে যাচ্ছি তবে আমি পটিটিই ব্যবহার করি, তবে টানেল এবং দ্রুত টার্মিনালের জন্য, টানেলিয়ার ভাল কাজ করে।
ডেভিড ইয়াউ

2
এটি পরিষ্কার নাও হতে পারে তবে আপনি সি 2 এস ট্যাবে টানেল এবং এস 2 সি ট্যাবে বিপরীত টানেলগুলি সেট আপ করেছেন । এটি যথাক্রমে ক্লায়েন্ট 2server এবং সার্ভার 2client জন্য দাঁড়িয়েছে ।
fracz

@ জিন-মার্ক লিওটিয়র সম্ভবত আপনি আমাকে সহায়তা করতে পারেন। এটি দেখুন: superuser.com প্রশ্ন
সাফল্য ম্যান

@ সুস্যাকসম্যান - আমি দুঃখিত, আমি যে কোনও মাইক্রোসফ্ট পণ্য পৃষ্ঠপোষকতার চেয়ে বেশি ব্যবহার করেছি বহু বছর হয়ে গেছে। আমি এখন অল-ডেবিয়ান, যেখানে এই ধরণের সমস্যাটিকে তুচ্ছভাবে সমাধান করা হয় ...
জ্যান-মার্ক লিওটিয়ার

11

ব্যবহার করে দেখুন MyEnTunnel । এটি সংযোগ ব্যর্থতায় পুনরায় সংযোগ করতে পারে।

এখানে চিত্র বর্ণনা লিখুন


লিঙ্কটি কাজ করে না :(
গাদেলাট


2

এক্সশেলের দিকে একবার নজর দিন - এটি পুটির চেয়ে স্ক্রিপ্টযোগ্য এবং ঘরের ব্যবহারের জন্য বিনামূল্যে (যদি আপনার এটির প্রয়োজন হয় তবে)। এটিতে একটি অটো-পুনঃসংযোগ বৈশিষ্ট্য রয়েছে বলে দাবি করা হয়েছে তবে আমি এটি চেষ্টা করি নি এবং এখন বেশ কয়েকমাস ধরে লিনাক্স-ভিত্তিক ল্যাপটপে চলেছি তাই এটির মো তে পরীক্ষা করার কোনও উপায় নেই।


Xshell সন্ত্রস্ত, আমি 3-4 বছর পূর্বে SecureCRT থেকে এটা পাল্টেছেন এবং ফিরে লাগছিল না
alexeit

2

দুটি দুর্দান্ত সরঞ্জাম:

উভয়েরই সেই বৈশিষ্ট্য রয়েছে:

  • বুটে স্বয়ংক্রিয় করা যেতে পারে
  • মুক্ত উৎস
  • একই সাথে অনেকগুলি টানেল পরিচালনা করুন
  • সিস্টেম ট্রেতে থাকতে পারে
  • বিনা মূল্যে (মোব্যাক্সটারমের একটি মুক্ত সংস্করণ রয়েছে)
  • সঞ্চিত পাসওয়ার্ড এনক্রিপ্ট করুন

1. মোব্যাক্সটার্ম

সাইট: http://mobaxterm.mobatek.net/

ক্যাপচার:

এখানে চিত্র বর্ণনা লিখুন

2. এসএসএইচ টানেল ম্যানেজার

সাইট: https://code.google.com/archive/p/ssh-tunnel-manager/

ক্যাপচার:

এখানে চিত্র বর্ণনা লিখুন


2

আমি এসএসএইচ টানেল পরিচালকদের মতো অনেকগুলি সমাধান চেষ্টা করেছিলাম, তবে সমস্তই আমার জন্য অসুবিধাজনক ছিল: অনেকগুলি কনফিগারেশন স্ক্রিন, কখনও কখনও বাগি (এক সময় এসএসএইচ টানেল ব্যবস্থাপক আমার সমস্ত সেটিংস সাফ করে দেয়! তাই আমাকে সমস্ত 30 টি টানেলের জন্য সেটিংস পুনরুদ্ধার করতে হয়েছিল)। সুতরাং তারা সবাই আমার আস্থা হারিয়েছে। এজন্য আমি কাস্টম পাওয়ারশেল স্ক্রিপ্ট, সহজ কনফিগারযোগ্য, পরিবর্তনযোগ্য, ছোট, তবে কাজ নিয়ে এসেছি। এখানে এবং নীচে পোস্ট করা :

এটি ব্যবহার শুরু করতে আপনার এই জাতীয় কনফিগারেশন প্রয়োজন:

# LocalPort TargetHost  TargetPort  SshHost SshUsername SshKeyPath 
18080   google.com  80  bastion.example.com User    D:\secure\path\to\private_key.ppk

এটি একটি কনফিগারেশন হিসাবে সংরক্ষণ করুন। এবং এটি চালিয়ে যাওয়ার জন্য পাওয়ারশেল স্ক্রিপ্ট ব্যবহার করুন:

<#
.SYNOPSIS
  Powershell script for keeping ssh tunnel up and running

.DESCRIPTION
  This script uses configuration of tunnels located in config.csv. For more information visit http://tsherlock.tech/2019/03/13/simple-ssh-tunnel-auto-reconnect-using-putty-and-powershell/

.NOTES
  Version:        1.0
  Author:         Anton Shkuratov
  Creation Date:  2019-03-13
  Purpose/Change: Initial script development

#>

$currentDir = $PSScriptRoot
if (-not $env:PATH.Contains($currentDir)) {
  $env:PATH="$env:PATH;$currentDir"
}

# Check plink is accessible
try {
  Start-Process plink.exe -WindowStyle Hidden
} catch {
  Write-Host Error running plink.exe Please make sure its path is in PATH environment variable
  EXIT 1
}

# Parse config
$config = [System.IO.File]::ReadAllLines("$currentDir\config.csv");
$bindings = New-Object System.Collections.ArrayList
$regex = New-Object System.Text.RegularExpressions.Regex("(\d)+\s([^ ]+)\s(\d+)\s([^ ]+)\s([^ ]+)\s([^ ]+)", [System.Text.RegularExpressions.RegexOptions]::IgnoreCase);
$keyPasswords = @{}
$procs = @{}

foreach($line in $config) {
  $match = $regex.Match($line)

  if ($match.Success) {
    $sshKey = $match.Groups[6];

    $bindings.Add(@{
      LocalPort = $match.Groups[1];
      TargetHost = $match.Groups[2];
      TargetPort = $match.Groups.Groups[3];
      SshHost = $match.Groups[4];
      SshUser = $match.Groups[5];
      SshKey = $match.Groups[6];
    });

    if (-not $keyPasswords.ContainsKey($sshKey)) {
      $pass = Read-Host "Please enter password for key (if set): $sshKey" -AsSecureString
      $keyPasswords.Add($sshKey, $pass);
    }
  }
}

# Starting Processes
function EnsureRunning($procs, $keyPasswords, $binding) {

  if ($procs.ContainsKey($binding) -and $procs[$binding].HasExited) {

    $proc = $procs[$binding]
    $sshKey = $binding.sshKey
    $out = $proc.StandardError.ReadToEnd()

    if ($out.Contains("Wrong passphrase")) {
      Write-Host "Wrong pass phrase for $sshKey, please re-enter"
      $pass = Read-Host "Please enter password for key: $sshKey" -AsSecureString
      $keyPasswords[$sshKey] = $pass;
    } else {
      $exitCode = $proc.ExitCode
      $tHost = $binding.sshHost

      Write-Host "Connection to $tHost is lost, exit code: $exitCode"
    }
  }

  if (-not $procs.ContainsKey($binding) -or $procs[$binding].HasExited) {
    $sshUser = $binding.SshUser
    $sshHost = $binding.SshHost
    $sshKey = $binding.SshKey
    $lPort = $binding.LocalPort
    $tPort = $binding.TargetPort
    $tHost = $binding.TargetHost
    $sshKeyPass = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($keyPasswords[$sshKey]))

    $psi = New-Object System.Diagnostics.ProcessStartInfo;
    $psi.FileName = "plink.exe";
    $psi.UseShellExecute = $false;

    $psi.CreateNoWindow = $true;
    $psi.RedirectStandardInput = $true;
    $psi.RedirectStandardError = $true;

    $psi.Arguments = "-ssh $sshUser@$sshHost -i `"$sshKey`" -batch -pw $sshKeyPass -L $lPort`:$tHost`:$tPort"

    $proc = [System.Diagnostics.Process]::Start($psi);

    Start-Sleep 1

    if (-not $proc.HasExited) {
      Write-Host Connected to $sshUser@$sshHost
    }

    $procs[$binding] = $proc;
  }
}

function EnsureAllRunning($procs, $keyPasswords, $bindings) {
  while($true) {
    foreach($binding in $bindings) {
      EnsureRunning $procs $keyPasswords $binding
    }
    Start-Sleep 1
  }
}


try {
  # Waiting for exit command
  Write-Host Working... Press Ctrl+C to stop execution...
  EnsureAllRunning $procs $keyPasswords $bindings
} finally {
  # Clean up
  Write-Host Clean up

  foreach($proc in $procs.Values) {
    if ($proc -ne $null -and -not $proc.HasExited) {
      $proc.Kill();
    }
  }
}

এটি কনফিগার হওয়ার পরে কেবল এটি চালান:

powershell -File autossh.ps1

1

যদি আপনার পুট্টির ভক্ত, পুট্টি ট্রে চেষ্টা করে দেখুন ।

এটিতে কয়েকটি অতিরিক্ত ফাংশন রয়েছে, সংযোগ ব্যর্থতার পরে স্বয়ংক্রিয় পুনঃসংযোগ করার চেষ্টা এবং আপনার কম্পিউটার স্ট্যান্ডবাই থেকে জাগ্রত হলে পুনরায় সংযোগ স্থাপন সহ including

ইতিমধ্যে অন্য কারও দ্বারা উল্লিখিত হিসাবে, আমি এটি কোনও পাস-বাক্যাংশের সাথে সার্বজনীন-কী প্রমাণীকরণের সাথে একত্রিত করব।

তত্ত্বগতভাবে এটি বেশ নির্ভরযোগ্য হওয়া উচিত তবে আমি কোনও সুরক্ষার বিশেষজ্ঞ না তাই আপনাকে সেই ফ্রন্টে পরামর্শ দিতে পারে না।


0

আমি এটি googled এবং আপনার প্রশ্নের কয়েকটি ফলাফল পেয়েছি, মূলত আপনি সর্বদা একটি অনুসন্ধান কম্বো চেষ্টা করতে পারেন automate putty loginযা আমি করেছি। এখানে একটি বিশেষ কার্যকর ফলাফল যা আপনার উপযুক্ত হবে:

http://www.neox.net/w/2008/04/22/putty-auto-login-macro-putty-connection-manager/

পুট্টির জন্য ম্যাক্রো কীভাবে সেটআপ করা যায় তা আপনাকে নিয়ে যায় । পুট্টি সংযোগ ব্যবস্থাপকটিও এখানে ডাউনলোড করুন (লিঙ্কটি প্রাথমিক লিঙ্ক থেকে নষ্ট হয়ে গেছে):

http://sourceforge.net/projects/puttycm/


পুটিসিএমের জন্য সোর্সফর্স লিঙ্কটি নষ্ট হয়ে গেছে। এই প্রশ্নটি দেখুন ।
ক্রেগ ম্যাককুইন

@ ক্রেইগএমসি কিউইন, আপনি বুঝতে পেরেছেন যে 01/19/2011 এ এর ​​উত্তর দেওয়া হয়েছিল !? ঠিক আছে?
জাকুব

1
হ্যাঁ, আমি বুঝতে পারি এবং আমি গতকাল এটি একটি গুগল অনুসন্ধানে পেয়েছি এবং অন্যান্য লোকেরা এক বা দু'বছর ধরে এটি করতে পারে।
ক্রেগ ম্যাককুইন

0

আমি পুট্টিকেও ব্যবহার করেছি এবং আমার আরও ভাল সমাধান না পাওয়া পর্যন্ত একই সমস্যা ছিল - এডিভিসফট পার্সেন্ট্যান্ট এসএসএইচ https://persistentssh.com একটি উইন্ডোজ পরিষেবা হিসাবে কাজ করে এবং এসএসএইচ টানেলগুলিকে চালিত অবস্থায় রাখে। ব্যক্তিগত ব্যবহারের জন্য বিনামূল্যে, অন্য কিছু ইনস্টল করার প্রয়োজন নেই।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.