SSH введите пароль одной строкой

Я хочу выполнить команду через ssh, но мой сервер использует фразу-пароль, я хочу сделать только одну строку, не спрашивая фразу-пароль.

~# ssh -t root@dev5 'echo "tes" ; bash'
Enter passphrase for key '/home/sed22/.ssh/id_rsa':

Спасибо за помощь.

2 ответа

но мой сервер использует парольную фразу

Нет, это не так. Ваш ключ зашифрован, поэтому ваш клиент запрашивает пароль, чтобы он мог его расшифровать.

Не поддавайтесь искушению снять шифрование с ключа - это Bad Thing TM.

Вместо этого используйте ssh-agent или pageant (windows) для хранения ваших ключей (безопасно) в памяти на время вашего сеанса. Насколько вы это делаете, зависит от того, какая у вас клиентская ОС.

Если вы пытаетесь автоматизировать процесс, вам, возможно, придется использовать незашифрованный ключ, но вы должны принять особые меры предосторожности, чтобы ограничить использование ключа в качестве примера.

Вы можете удалить ключевую фразу из ключа с помощью ssh-keygen -p, Это начало ключа FOO, который, как вы можете видеть, шифруется парольной фразой:

[me@risby .ssh]$ head -5 FOO
-----BEGIN RSA PRIVATE KEY----- 
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,DCF8CD9222D62A42D0BFE4FC284BD6BB

f2hDtfkOeUC0Gw0MhQzSvPSj+6XtYX+Y7XMZ7m8BuAz4mg2G/M99LmXlmGW/7AUj

Мы удаляем парольную фразу (ввод возврата при запросе новой парольной фразы):

[me@risby .ssh]$ ssh-keygen -p -f FOO
Enter old passphrase: 
Enter new passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved with the new passphrase.

и ключ теперь не зашифрован:

[me@risby .ssh]$ head -2 FOO
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA2mfFcvjEuIsyZbhdp4U9Hn7XxFr5naBJEqSMGFdrfL7iX38C
Другие вопросы по тегам