Выполнить ssh с аутентификацией по паролю через командную строку Windows


93

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

ssh <user>@<host> <command>

Есть ли такие команды, как

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

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

Не знаю, возможно ли это. Тем не менее, для этого же может быть некоторая работа. Подскажите мне несколько идей, как добиться того же.


2
Намного лучше использовать аутентификацию на основе ключей.
Грег Иноземцев

1
Да, у меня тоже есть требование аутентификации на основе пароля.
Balachandar

12
@GregInozemtsev в этом случае иногда возникает необходимость в быстром и грязном скрипте, чтобы сделать что-то подобное, особенно в тестовой или другой среде, где не требуется чистая безопасность.
TheJosh

Я не понимаю, почему отсутствует этот базовый вариант. Я искал команду -pw superputty (putty) :( Думаю, вместо этого я
перейду

Ответы:



159

Sshpass утилита предназначена для именно это. Сначала установите sshpass, набрав эту команду:

sudo apt-get install sshpass

Затем добавьте команду ssh / scp с помощью

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

Эту программу проще всего установить при использовании Linux.

sshВместо этого пользователю следует рассмотреть возможность использования более безопасной аутентификации с открытым ключом SSH (с помощью команды).


8
Также работает с rsync.
TheJosh

15
Потому что в заголовке нет «окон», и он отображается высоко в списке при поиске этого для Linux / Unix / Mac. Итак, ответ на этот вопрос здесь экономит время.
Frobbit

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

5
Вы должны знать, что выполненные команды оболочки сохраняются (например, в '.bash_history') ..
Бенджамин,

5
Аниш - Автор просил windows, вы дали вариант linux.
arka.b


6

Решение 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.