Как установить IP через трубопровод?

Безопасность повышается, если только одна машина может выполнять дешифрование.

Однако доступность может серьезно пострадать, если эта машина выйдет из строя.

Как бы вы предложили разрешить только одному компьютеру расшифровать раздел LUKS? Мне просто нужно было бы получить набор переменных, специфичных для моей машины, и добавить их в парольную фразу [...]

Ну, вы могли бы использовать серийные номера некоторых аппаратных средств ( sudo dmidecode , чтобы увидеть some), но это менее полезно, чем вы думаете. Если у злоумышленников есть физический доступ к компьютеру, они могут заставить его показать им серийные номера оборудования и разрушить схему. Если у злоумышленников нет физического доступа к компьютеру, вы можете просто использовать ключевой файл, хранящийся на незашифрованном разделе внутреннего диска, или на флэш-накопителе, или на SD-карте, или на оптическом диске. и т. д.

2
25.11.2016, 08:57
2 ответа

Используйте xargs Флаг замены строки

Вам необходимо использовать флаг строки замены для xargs. Например, предположим, что остальная часть вашего конвейера работает, как задумано:

sudo arp-scan --localnet | grep 10 | cut -c1-12 | xargs -I{} -n1 ssh -tt myuser@{}

Обратите внимание, что обе команды xargs и ssh нуждаются в некоторых дополнительных флагах для правильной работы. Особо следует отметить необходимость передачи флагов -tt в SSH для принудительного выделения PTY на удаленном хосте, когда клиент SSH получает стандартный ввод из канала.

Используйте подстановку команд и переменные оболочки

В качестве альтернативы, если вы точно захватываете один IP-адрес, вы можете просто зафиксировать результат в переменной оболочки и вызвать SSH на правильном хосте. Например, использование оболочки Bash:

host_ip=$(sudo arp-scan --localnet | grep 10 | cut -c1-12)
ssh "myuser@${host_ip}"

Основное преимущество этого подхода в том, что его легче отлаживать. Однако ваш пробег может отличаться.

2
27.01.2020, 22:04
  • Первая проблема заключается в том, что вы пытаетесь выполнить ssh myuser@ x.y.z.t (где x.y.z.t - указанный IP-адрес). Не сработает. Вам нужно ssh myuser@x.y.z.t (обратите внимание, что между myuse@ и IP-адресом нет пробела). Вы можете попробовать sudo arp-scan --localnet | grep ... | sed -e 's/^/myuser@/' | xargs ssh.

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

    ACCOUNTNAME=myuser
    MACADDRESS=00:50:56:3a:8d:1e
    ssh "$ACCOUNTNAME@$(
     sudo arp-scan --localnet |
     grep "$MACADDRESS" |
     cut -c 1-15
    )"
    

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

Возможно, вы захотите добавить код обработки ошибок, в случае если grep не сможет найти IP-адрес, соответствующий данному MAC-адресу.

1
27.01.2020, 22:04

Теги

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