Проблемы с аутентификацией ключа SSH без полномочий root в DSM 6

если ваш файл является настоящим файлом csv (простой -csv ), как показано ниже,вы можете использовать следующую команду awk:

Вход:

jeff@email.com
larry@email.com
jprice@email.com,jeff@email.com,jeff@stacko.com

Команда:

awk -F, '{ COMMA="";i=0; while (++i<=NF) {
           $1=$i; printf (!seen[$1]++)?COMMA$i:""; COMMA=","}; print ""
}' infile.csv

Выход:

jeff@email.com
larry@email.com
jprice@email.com,jeff@stacko.com

Если нет, и ввод похож на ваш вопрос, вы можете вместо этого использовать ниже:

awk  'NR==1; NR>1{id=$1"\t"; COMMA=$1="";split($0, ar, /,| /); 
    for(i in ar){if(ar[i]!=""){printf(!seen[ar[i]]++)?id""COMMA""ar[i]:""; COMMA=",";id=""}
} print ""}' infile

Выход:

id  emails
1       jeff@email.com
2       larry@email.com
3       jprice@email.com,jeff@stacko.com
1
25.02.2020, 12:47
1 ответ

Введение -Отладка SSH

Во-первых, полезное примечание (в любом случае для меня )при отладке проблем с аутентификацией SSH:

  1. Запустите сервер в режиме отладки на Synology:

    /bin/sshd -d -p 1234` as root;
    
  2. Войдите в свой клиент, используя

    ssh -p1234 -v <username>@<synology>
    

Это позволит вам получить легкий доступ к полезной отладке.

Шаг 1 -Обновление sshdконфигурации

Отредактируйте /etc/ssh/sshd_configи обновите конфигурацию AuthorizedKeysFileдля поддержки значения по умолчанию плюс альтернативное расположение файла:

AuthorizedKeysFile /var/ssh-homes/%u/dot-ssh/authorized_keys.ssh/authorized_keys

Перезапустите SSH-сервер, что проще всего сделать в этом случае с помощью графического интерфейса DSM:

Шаги:снимите флажок «Включить SSH» --> примените --> повторно -отметьте --> примените

Terminal settings on Control Panel

Шаг 2 -Создайте альтернативный authorized_keysфайл для каждого применимого пользователя

Я создал приведенный ниже скрипт как /root/prepare-dot-ssh-authorized-keysдля этой цели следующим образом:

  1. Редактировать с помощью vi /root/prepare-dot-ssh-authorized-keysили аналогичного
  2. Сделать исполняемый файл с помощьюchmod u+x /root/prepare-dot-ssh-authorized-keys
  3. Запуск с именем пользователя Synology/root/prepare-dot-ssh-authorized-keys <username>

Ссылки

Обратите внимание, что на форумах Synology было полезное обсуждение. Аутентификация без -корневого ключа SSH, работающая с DSM 6.2.2 -24922 Обновление 4 и ssh-сервер отказался от ключа для всех пользователей но root , который сэкономил мне время и поставил меня на правильный путь.

Скрипт/root/prepare-dot-ssh-authorized-keys

#!/bin/bash -e

# https://community.synology.com/enu/forum/1/post/129890

if test -z "$1" ; then
    echo "usage: $0 <username>"
    echo ""
    echo "Ensure config in /etc/ssh/sshd_config includes:"
    echo "AuthorizedKeysFile /var/ssh-homes/%u/dot-ssh/authorized_keys.ssh/authorized_keys"
    exit 1
fi

_DIR="/var/ssh-homes/$1/dot-ssh"
_AK="${_DIR}/authorized_keys"

if test -d "${_DIR}" ; then
    echo "$0: ${_DIR} already exists"
    exit 2
fi

if test -r "${_AK}" ; then
    echo "$0: ${_AK} already exists"
    exit 3
fi

mkdir -p "${_DIR}"
chmod og-rwx `dirname "${_DIR}"`

touch "${_AK}"
chown "${1}.users" -R `dirname "${_DIR}"`

echo "$0: created ${_AK}"

0
28.04.2021, 23:22

Теги

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