Windows komut istemi aracılığıyla parola kimlik doğrulamasıyla ssh yürütün


93

Ben yürütmek için ihtiyaç ssh dan pencereler komut satırına olmayan bir interaktif şekilde şifre girerek. Anahtar tabanlı kimlik doğrulamasını uygulayabilir ve ssh komutlarını aynı şekilde çalıştırabilirim:

ssh <user>@<host> <command>

Gibi herhangi bir komut var mı

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

görüntü açıklamasını buraya girin

Uygulanabilir olup olmadığını bilmiyorum. Ancak, bunun için bazı işler olabilir. Aynısını başarmak için bana bazı fikirler verin.


2
Anahtar tabanlı kimlik doğrulamasını kullanmak çok daha iyi bir fikirdir.
Greg Inozemtsev

1
Evet, parola tabanlı kimlik doğrulamasına da ihtiyacım var.
Balachandar

12
@GregInozemtsev bu durumda, bazen hızlı ve kirli bir komut dosyasının böyle bir şey yapması, özellikle de saf güvenliğin gerekli olmadığı bir test veya başka bir ortamda ihtiyaç duyulmaktadır.
TheJosh

Bu temel seçeneğin neden eksik olduğunu anlamıyorum. -Pw superputty (putty) komutunu arıyordum :( Sanırım bunun yerine ssh tuşlarına
geçeceğim

Yanıtlar:



159

Sshpass programı tam olarak bu içindir. Öncelikle, bu komutu yazarak sshpass'ı kurun:

sudo apt-get install sshpass

Sonra ssh / scp komutunuzun başına şunu ekleyin:

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

Bu program Linux kullanırken kurulumu en kolay olanıdır.

Kullanıcı sshbunun yerine SSH'nin daha güvenli genel anahtar kimlik doğrulamasını ( komutla) kullanmayı düşünmelidir .


8
Rsync için de çalışır.
TheJosh

15
Çünkü başlık "pencereleri" içermiyor ve Linux / Unix / Mac için bunu aradığınızda listede üstte görünüyor. Yani, bu soruyu burada cevaplamak zaman kazandırır.
Frobbit

1
Mac OS X'te harika çalıştı sudo port install sshpass. Sshpass'ı üzerinden yükledim . Yine de, başka bir sebepten dolayı oturum açmada bir sorun varsa, sshpass sessizce başarısız olma eğilimindedir (hata mesajı yok). Öyleyse, sshpassönce komutta hata ayıklayın ; sonra ekleyin sshpass -p blah(vb.).
RedRedSuit

5
Yürütülen kabuk komutlarının depolandığının farkında olmalısınız (örneğin '.bash_history'de) ..
Benjamin

5
Anish - Yazar pencereler istedi, siz linux için seçenek verdiniz.
arka.b

24

Peki ya bu bekleme senaryosu?

#!/usr/bin/expect -f
spawn ssh root@myhost
expect -exact "root@myhost's password: "
send -- "mypassword\r"
interact


expectherkesin bildiği gibi küçümseniyor!
Frerich Raabe

6

Windows Çözümü

  1. PuTTY'yi yükleyin
  2. Basın Windows-Key + R
  3. Giriş putty.exe -ssh [username]@[hostname] -pw [password]

2

PowerShell çözümü

Posh-SSH Kullanımı:

New-SSHSession -ComputerName 0.0.0.0 -Credential $cred | Out-Null
Invoke-SSHCommand -SessionId 1 -Command "nohup sleep 5 >> abs.log &" | Out-Null
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.