Configurando chave SSH permanente no storage WDMyCloudEX4100

De Wiki Hackstore

O storage WDMyCloudEX4100 possui uma particularidade, onde ele descarta qualquer alteração nos diretórios /etc e /home (a home do usuário root fica em /home/root nesses storages). Dessa forma, é necessário automatizar o processo de instalação de chaves SSH no mesmo, visto que a cada reboot ou de tempos em tempos quaisquer modificações manuais são descartadas. Porém ele não apaga nada no diretório /usr/local/config, e é exatamente neste diretório que guardaremos as chaves SSH desejadas.

Requisitos

  • instalação do sshpass
# wget http://opensuse.c3sl.ufpr.br/source/tumbleweed/repo/oss/src/sshpass-1.06-1.6.src.rpm
# rpmbuild --rebuild sshpass-1.06-1.6.src.rpm 
# rpm -Uhv /usr/src/packages/RPMS/x86_64/sshpass-1.06-1.6.x86_64.rpm

Implementação das chaves no Storage

OBS: Lembre-se de ativar o SSH via painel web do stage e definir a senha de root!

Configure as chaves ssh dentro do diretório /usr/local/config e corrija as permissões:

mkdir -p /usr/local/config/hackstore/.ssh
touch /usr/local/config/hackstore/.ssh/authorized_keys
chmod 700 /usr/local/config/hackstore/.ssh
chmod 600 /usr/local/config/hackstore/.ssh/authorized_keys

Adicione as chaves desejadas no arquivo /usr/local/config/hackstore/.ssh/authorized_keys

Automatização de checagem e instalação das chaves

Crie um script de checagem das chaves:

touch /oracle/export/check-sshkey-storage.sh

com o seguinte conteúdo:

#!/bin/bash

SENHA_ROOT_STORAGE="hackstore@12345"
CHECK_DIR_SSH="$(sshpass -p "${SENHA_ROOT_STORAGE}" ssh root@192.168.0.209 'ls -la /home/root/|grep ssh|wc -l')"

if [ "${CHECK_DIR_SSH}" -ne 1 ]; then
        sshpass -p "${SENHA_ROOT_STORAGE}" ssh root@192.168.0.209 'cp -rp /usr/local/config/hackstore/.ssh/ /home/root'
fi

Adicione ao crontab:

*/3 * * * * root        /oracle/export/check-sshkey-storage.sh


Seja feliz :D