ssh-add

Автоматический ввод пароля SSH-ключа из консоли

Для автоматического ввода пароля от ключа 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 Permission denied (publickey) [Решено]

Не могу настроить свой 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 myname@XXX.XXX.XXX.XXX

или

SSH-Agent автоматический ввод пароля ключа при соединении с сервером и привязка к KWallet

sudo apt install ssh-agent ssh-add ksshaskpass

Добавляем в ~/.profile строку export SSH_ASKPASS="/usr/bin/ksshaskpass"

echo 'export SSH_ASKPASS="/usr/bin/ksshaskpass"' >> ~/.profile

Создаем скрипт для автозапуска при загрузке 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 имена ключей.