Jak wprowadzić hasło ssh za pomocą bash? [duplikat]

To pytanie ma już odpowiedź tutaj:

Codziennie łączę się z serwerem przez ssh. Przechodzę przez tę rutynę:

IC001:Desktop user$ ssh [email protected]
[email protected]'s password: 

Last login: Tue Jun  4 10:09:01 2013 from 0.0.0.0
$

Chciałbym zautomatyzować ten proces i stworzyć skrypt bash, który zrobi to za mnie. Nie dbam o bezpieczeństwo i dobrze przechowywać moje hasło otwarcie w skrypcie. Jestem również w porządku, aby zostać wpisanym otwarcie na ekranie, podczas gdy skrypt zostanie wykonany. Więc stworzyłem to:

#!/bin/bash          
ssh [email protected]
echo mypassword
Ale to nie działa. Próbowałem też send zamiast echo, ale też nie zadziałało. Proszę doradzić, czy jest to możliwe.
 74
Author: Prostak, 2013-06-05

2 answers

Sprawdź dokładnie, czy nie możesz używać klawiszy.

W przeciwnym razie użyj expect:

#!/usr/bin/expect -f
spawn ssh [email protected]
expect "assword:"
send "mypassword\r"
interact
 160
Author: michas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-04 22:38:23

Utwórz nowy keypair: (przejdź z domyślnymi wartościami)

ssh-keygen

Skopiuj klucz publiczny na serwer: (hasło do ostatniego razu)

ssh-copy-id [email protected]

Od teraz serwer powinien rozpoznawać twój klucz i nie prosić cię już o hasło:

ssh [email protected]
 88
Author: michas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-04 21:52:09