przesłanie automatyczne klucza ssh

Aby przesłać zdalnie klucz za pomocą skryptu można wykorzystać język expect.
Idealnie nadaje się do oczekiwania na dane i wysłania ich w trybie terminala ssh.

1.Najpierw instalujemy go w systemie

sudo apt-get install expect

2. Tworzymy plik copy-key:

#!/usr/bin/expect -f

set host [lindex $argv 0];
set user [lindex $argv 1];
set password [lindex $argv 2];

spawn ssh-copy-id "$user@$host"
expect "password" {send "$password\r"}
expect "$ "

3. Teraz nadajemy uprawnienia do wykonywania skryptu w linux

chmod +x /copy-key

4. Uruchamiamy jak poniżej, gdzie nasz serwer do którego chcemy się dostać ma adres IP 192.168.0.4.

./copy-key 192.168.0.4 uzytkownik haslo

root