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