Виконайте ssh за допомогою автентифікації за допомогою пароля через командний рядок Windows


93

Мені потрібно виконати ssh із командного рядка Windows , надавши пароль неінтерактивно. Я міг би реалізувати аутентифікацію на основі ключів і мати можливість виконувати команди ssh, як

ssh <user>@<host> <command>

Чи є такі команди, як

ssh <user>@<host> -P <password> <command>

введіть тут опис зображення

Не знаю, чи це можливо. Однак для цього ж можуть бути певні роботи. Наведіть мені кілька ідей, щоб здійснити те саме.


2
Використання автентифікації на основі ключів - набагато краща ідея.
Грег Іноземцев

1
Так, у мене також є вимога до автентифікації на основі пароля.
Балачандар,

12
@GregInozemtsev, хоча в цьому випадку іноді виникає потреба в швидкому і брудному сценарії, щоб зробити щось подібне, особливо в тестуванні або в іншому середовищі, де не потрібна чиста безпека.
TheJosh

Я не зрозумів, чому не вистачає цього основного варіанту. Я шукав команду -pw superputty (putty) :( Напевно, я замість цього перейду до клавіш ssh.
m3nda

Відповіді:



160

Sshpass утиліта призначена для саме це. Спочатку встановіть sshpass, ввівши цю команду:

sudo apt-get install sshpass

Потім додайте команду ssh / scp до

sshpass -p '<password>' <ssh/scp command>

Цю програму найпростіше встановити під час використання Linux.

Користувачеві слід розглянути можливість використання sshнатомість більш безпечної автентифікації відкритого ключа за допомогою команди SSH .


8
Працює і для rsync.
TheJosh

15
Оскільки заголовок не включає "windows", і він відображається високо в списку при пошуку цього для Linux / Unix / Mac. Отже, відповідь на це запитання економить час.
Фроббіт

1
Чудово працював у Mac OS X. Я встановив sshpass через sudo port install sshpass. Хоча, якщо виникає проблема із входом через щось інше, sshpass, як правило, мовчки виходить з ладу (повідомлення про помилку відсутнє). Тому налагоджуйте команду без sshpassпопереднього; потім додайте sshpass -p blah(тощо).
RedRedSuit

5
Ви повинні пам’ятати, що виконувані команди оболонки зберігаються (наприклад, у .bash_history) ..
Бенджамін

4
Anish - Автор запитав про windows, ви дали опцію для Linux.
arka.b


5

Рішення Windows

  1. Встановіть PuTTY
  2. Натисніть Windows-Key + R
  3. Введіть putty.exe -ssh [username]@[hostname] -pw [password]

2

Рішення PowerShell

Використання Posh-SSH:

New-SSHSession -ComputerName 0.0.0.0 -Credential $cred | Out-Null
Invoke-SSHCommand -SessionId 1 -Command "nohup sleep 5 >> abs.log &" | Out-Null
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.