Пароль в текстовом аргументе для ssh -i (личность _файл)

Частичный ответ:

Ваш беспроводной адаптер подключен к шине PCI 3b. Согласно dmesg,

[    0.338888] pci 0000:00:1c.0: PCI bridge to [bus 3b]

эта шина находится за мостом PCI 0:1c.0. Существует четыре сообщения об ошибках, связанных с четырьмя разными мостами PCI :

.
[    0.888395] dpc 0000:00:1b.0:pcie010: DPC error containment capabilities: Int Msg #0, RPExt+ PoisonedTLP+ SwTrigger+ RP PIO Log 4, DL_ActiveErr+
[    0.888407] dpc 0000:00:1c.0:pcie010: DPC error containment capabilities: Int Msg #0, RPExt+ PoisonedTLP+ SwTrigger+ RP PIO Log 4, DL_ActiveErr+
[    0.888423] dpc 0000:00:1c.4:pcie010: DPC error containment capabilities: Int Msg #0, RPExt+ PoisonedTLP+ SwTrigger+ RP PIO Log 4, DL_ActiveErr+
[    0.888436] dpc 0000:00:1d.0:pcie010: DPC error containment capabilities: Int Msg #0, RPExt+ PoisonedTLP+ SwTrigger+ RP PIO Log 4, DL_ActiveErr+

, возможно, поэтому он не может найти беспроводной адаптер. Я не знаю, что должно быть за теми другими мостами.

Вы можете сравнить с выводом dmesgпри работающей загрузке и посмотреть, присутствуют ли все еще сообщения об ошибках.

Однако я подозреваю, что это какая-то аппаратная проблема. Это будет нелегко исправить.

1
08.04.2021, 07:41
3 ответа

Предполагая, что вы используете клиент OpenSSH, вы можете сделать это с помощью sshpass .

sshpass -P "Enter passphrase for key" \
 -pSomeIncredibleLongAndRandomizedPasswordThatIsMeantToBeUsedForScripts \
 ssh -i testssh server_username@10.0.0.25

Конечно, только потому, что вы можете сделать это, не означает, что вы должны это делать. Я хотел бы призвать вас рассмотреть комментарии, которые были сделаны по вашему вопросу.

2
28.04.2021, 22:53

Кажется, что невозможно добиться этого только с помощью bash или открытого -ssh.

Мне удалось заставить его работать с помощью Expect

Ожидать скрипт:

spawn ssh -i testssh server_username@10.0.0.25
expect "Enter passphrase"
send "SomeIncredibleLongAndRandomizedPasswordThatIsMeantToBeUsedForScripts\r"
interact

Один -вкладыш:

expect -c "spawn ssh -i testssh server_username@10.0.0.25;expect \"Enter passphrase\";send \"SomeIncredibleLongAndRandomizedPasswordThatIsMeantToBeUsedForScripts\r\";interact"

Expect ищет Enter passphraseи вводит пароль send "SomeIncredibleLongAndRandomizedPasswordThatIsMeantToBeUsedForScripts\r".

Наконец interactдля взаимодействия с сеансом


В качестве примечания: пароли в виде обычного текста вообще никогда не следует использовать.

0
28.04.2021, 22:53

I know it's recommended to use ssh keygen to login without password,
[...]
So I was thinking of obscuring the process a bit, by setting a password on the identity file,

Звучит немного противоречиво, поэтому трудно сказать, что вы пытаетесь сделать.

Если вы входите в систему в интерактивном режиме, вы можете просто ввести пароль при использовании файла ключа/удостоверения.

С другой стороны, если вы имеете в виду, что ключ должен быть доступен какому-то автоматическому процессу и вы хотите сохранить пароль ключа в той же системе, то вы можете не иметь пароля в все.

Но если вы хотите избежать этого, вы можете вместо этого установить обычный (хороший )пароль/фразу-пароль для ключа и использоватьssh-agentдля хранения незашифрованного ключа для использования автоматическим скриптом. Затем вам нужно будет вводить кодовую фразу ключа только один раз после каждой перезагрузки, и хотя незашифрованный ключ все еще будет находиться в системной памяти, злоумышленник не сможет получить его, просто украв диски. Вместо этого им пришлось бы нарушать программную безопасность системы или выполнять атаку с «холодной» загрузкой -, чтобы прочитать содержимое памяти.

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

Чтобы сделать ключ доступным для скрипта с помощью ssh-agent, запустите агент и добавляйте в него ключ после каждой перезагрузки:

# start the agent, the output contains settings needed to talk to it
# and an 'echo' command printing its PID, remove that one here
ssh-agent | grep -ve ^echo > ~/script-agent-info
. ~/script-agent-info

# add the key to the agent, this asks for the passphrase
ssh-add ~/.ssh/script_id_rsa

, а затем в скрипте

# load the agent settings we stored earlier
. ~/script-agent-info

# use the key
ssh somehost@somewhere

(Вместо того, чтобы агент генерировал случайное имя для используемого сокета, вы можете использовать ssh-agent -a, чтобы сообщить ему путь, а затем просто установить SSH_AUTH_SOCKна этот путь в сценарии.)

1
28.04.2021, 22:53

Теги

Похожие вопросы