Чи можливо відкрити сеанс SSH в PowerShell? В даний час я використовую PuTTY, але було б непогано, якби це не було потрібно.
Чи можливо відкрити сеанс SSH в PowerShell? В даний час я використовую PuTTY, але було б непогано, якби це не було потрібно.
Відповіді:
Не вбудовано, звичайно, але оскільки Powershell може все, що завгодно. Net може зробити, є спосіб.
Оплаченим рішенням буде NetCmdlets програмного забезпечення / n.
Безкоштовним рішенням буде використання пропозицій цієї публікації в блозі.
Я написав модуль для роботи з сесіями SSH від PowerShell, на основі бібліотеки SSH.NET, знайденої на CodePlex. У ньому є New-SshSession для створення з'єднань (підтримується кілька цілей за допомогою різних облікових даних), а потім ви можете використовувати Invoke-SshCommand для запуску команд проти будь-якої кількості цільових хостів. Навіть є Enter-SshSession, який має дуже основну, інтерактивну оболонку.
Стаття тут .
Йоаким
Завантажте OpenSSH для Windows та виберіть для встановлення лише клієнт під час встановлення. Весь інсталятор, що включає сервер, становить менше 3 Мб, і клієнт працює чудово.
Я все ще публікую відповідь на це запитання, тому що я визнав, що прийнята відповідь зовсім не відповідає моїм потребам (лише платне рішення чи інше, що не справляється з терміналом добре).
Тож очевидним рішенням цієї проблеми є встановлення cygwin. Зробіть мінімальну інсталяцію, якщо ви просто хочете ssh, але, оскільки powershell забезпечує базовий рівень сумісності з * nix оболонками (основні команди все ще є, "/" для каталогів тощо), реально можна використовувати cygwin речі всередині Powershell.
Є альтернативне (безкоштовне) рішення PowerShell SSH, використовуючи новішу реалізацію бібліотеки, див. VBlog >> Клієнт SSH, що використовує PowerShell
Якщо цільова машина - це вікно Windows, ви можете використовувати PowerShell Remoting .
Це точно не те саме, що SSH. Є плюси (повернення об’єктів через дріт!) І мінуси (що робити, якщо ціль - Linux?).
http://www.powershellinside.com/powershell/ssh/ Безкоштовно для особистого користування.
Я використовую Git http://git-scm.com/downloads
Включає в себе безліч інших інструментів, таких як SCP, і таких, які також є корисними.
Один із способів отримати дуже хорошого рідного ssh-клієнта - це встановити git від GitHub ( https://windows.github.com/ ).
Він створює ярлик до вікна posh-git з усіма шляхами, встановленими правильно, щоб використовувати git в powershell. Це автоматично поставляється із бінарними файлами ssh та scp на шляху.
Я не впевнений, що це за реалізація, але він має таке відчуття як Linux, тобто він не відчуває себе таким, як є.
Це підбір приватного ключа, який я налаштував у $ home / .ssh / у форматі opensh, і, можливо, хтось може це підтвердити. Це здається, що це відкрито.
Щоб зробити це ще краще, я інтегрував його у свій звичайний профіль повноважень, зробивши наступне у своєму $ профілі. Це означає, що мені не потрібно використовувати ярлик ярда.
. (Resolve-Path "$env:LOCALAPPDATA\GitHub\shell.ps1")
. (Resolve-Path "$env:LOCALAPPDATA\GitHub\PoshGit_*\profile.example.ps1")
Posh-SSH - це безкоштовний модуль журналу Poswershell, який працює для Powershell 3.0 і вище.
Він доступний на веб- сайті http://www.powershellmagazine.com/2014/07/03/posh-ssh-open-source-ssh-powershell-module/
Повна документація надана за посиланням вище. У сценарії вам не дуже потрібні інтерактивні з'єднання, тому це два кроки. Перше створіть сеанс. 2-й команди відправки.
$ServerConnection = New-SSHSession -KeyFile $keyLocation -ComputerName $sshComp -Credential $mycreds -AcceptKey
Перший створений вами сеанс матиме індекс 0.
Invoke-SSHCommand -Index 0 -Command "some command to run over ssh"
Найкраще застосовувати створення з'єднання у спробу вилову та перевірити існування сеансу перед запуском команди. Це змушує взаємодію з Linux-серверами зсередини скрипта повноважень працювати добре.
SSH та SFTP безсумнівно представляють галузевий стандарт у захищеному застосуванні віддаленого доступу. На щастя можливо, що встановлення з'єднання може бути дійсно швидким та простим. На жаль, правда полягає в тому, що існує багато можливостей витрачати час на усунення несправностей.
На жаль Windows не має стандартного клієнтського ssh або deamon-програмного забезпечення.
Це призводить до того, що зоопарк більш-менш вигадливих реалізацій, відкритого коду, безкоштовної програми, програмного забезпечення та інше ... десь працює інколи.
У вікнах - це гроші. Microsoft просто не хоче, щоб багато користувачів легко підключалися до 1 ліцензованого комп'ютера. Вони хочуть продати власні рішення. Тому вони не пропонують рідний ssl.
cygwin - найкраще доступне рішення.
putty / plink / wincp як клієнтське програмне забезпечення. це також нормально для сценаріїв.
є ssh-діамони для інтеграції Windows, але рішення більш-менш нестабільні.
найстабільніший спосіб запустити ssh deamon на windwos - це запустити його всередині Linux VM, що може бути реалізовано за допомогою невеликої дистибуції Linux.