Для автоматического ввода пароля от ключа SSH соединения из коммандной строки для подключения к SSH на пример из скрипта, используем:
sudo apt install expect
Создаем файл /usr/bin/exp следующего содержания:
#!/usr/bin/expect
set timeout 20
set cmd [lrange $argv 1 end]
set password [lindex $argv 0]
eval spawn $cmd
expect "passphrase for key"
send "$password\r";
interact
Даем права на выполнение:
sudo chmox +x /usr/bin/exp
Используем:
exp <пароль> ssh <параметры подключения>
Не могу настроить свой SSH. Всё делаю из командной строки. После того, как я ввожу пароль, мне сообщается:
Authenticated with partial success.
Permission denied (publickey).
Что я уже сделал.
1) установил ssh
sudo apt-get install ssh
2) создал публичный и частный ключи
ssh-keygen -t dsa
3) скопировал публичный ключ id_dsa.pub в директорию на удалённом сервере ~/.ssh (как это требовал администратор сервера)
4) для соединения с удалённым сервером (указываю особый порт) использую
ssh -p 2042 [email protected]
или
sudo apt install ssh-agent ssh-add ksshaskpass
В ~/.bash_profile добавляем:
eval $(ssh-agent)
export SSH_ASKPASS=/usr/bin/ksshaskpass
Создаем скрипт для автозапуска при загрузке KDE
sudo nano ~/.config/autostart-scripts/ssh-add.sh
Следующего содержания:
#!/bin/sh
ssh-add $HOME/.ssh/key1 $HOME/.ssh/key2 $HOME/.ssh/key3 </dev/null
Где key1 key2 key3 имена ключей.