La commande SSH permet de se connecter à un serveur distant via internet.
SSHRC s'installe comme un wrapper et va copier des fichiers de config à la volée de votre machine locale (où vous exécutez la commande ssh ou sshrc) et le serveur.
Plus précisément, elle va copier le contenu du dossier ~/.sshrc.d de votre machine locale vers le serveur dans /tmp/.VOTRE_NOM_QQCH
Créez donc sur votre machine locale des liens symboliques vers votre .bashrc et autres fichier à synchroniser dans ce dossier, moi j'ai ajouté une config pour docker.
.sshrc.d/
- .bashrc
- .docker-config.json
ln -s ~/.bashrc ~/.sshrc.d/.bashrc
ln -s ~/.docker/config.json ~/.sshrc.d/docker-config.json
Une fois connecté à votre serveur le fichier .sshrc sera executé.
On va donc sourcer les fichiers de config et effectuer quelque manip' de sécurité
.sshrc
# Your local .bashrc file has been sent to the server in "/tmp/.$USER.$SOMETHING"
# So we source it from there.
source /tmp/.$USER.sshrc.*/.sshrc.d/.bashrc && \
echo -e "Your custom .bashrc file has been sourced from \"$(echo /tmp/.$USER.sshrc.*/.sshrc.d/.bashrc)\""
# Create a standard home docker config folder
# and copy the config file in it
mkdir -p /home/$USER/.docker/ && \
cp /tmp/.$USER.sshrc.*/.sshrc.d/docker-config.json /home/$USER/.docker/config.json && \
echo -e "Your custom docker config file has been copied into \"/home/$USER/.docker/config.json\""
# Show some security reports
echo -e "\n${SUPERRED}***********************************${NC}"
echo -e "${SUPERRED}*${NC} ${RED} /!\ SECURITY REPORT /!\ ${NC} ${SUPERRED}*${NC}"
echo -e "${SUPERRED}***********************************${NC}\n"
echo -e "\n * LASTLOG : lastlog -b 1 | grep -iv never"
lastlog -b 1 | grep -iv never
echo -e "\n\n * LAST : last -aiF | grep -v $USER"
echo -e "if strange user, run : sudo lastb -adF SUSPICIOUS_USER"
last -aiF | grep -v $USER
echo -e "\n\n * JOURNALCTL : sudo journalctl _SYSTEMD_UNIT=sshd.service | grep error"
Bonus : Enjoliver les réponses de Docker
vi /home/$USER/.docker/config.json
{
"psFormat": "table {{.Names}}\\t{{.Status}}\\t{{.Image}}\t{{.Size}}"
}