Sposta cartella .ssh da / var / root /

2

Ho provato a configurare una chiave ssh per accedere facilmente al server che ospita il mio sito web: ssh-keygen -t dsa -b 1024 . Le chiavi (pubbliche e private) sono state salvate in /var/root/.ssh che non mi piace perché devo sudo -s prima di rsync per accedere alla chiave privata.

C'è un modo facile e sicuro per spostare la cartella ssh da /var/root/.ssh alla mia cartella utente, in modo che io possa usare le chiavi anche se non root? quale posizione per spostarlo? qual è il comando per il principiante da utilizzare per il trasferimento? (per Mac OS 10.10) Grazie.

    
posta Gilles 06.09.2015 - 15:41
fonte

2 risposte

2

Se hai semplicemente creato una chiave DSA come root, sarebbe più sicuro fare quanto segue (da un terminale come utente):

mkdir -p ~/.ssh
sudo cp -av /var/root/.ssh/id_dsa /var/root/.ssh/id_dsa.pub /Users/$USER/.ssh/
chown -v $USER: ~/.ssh/id_dsa*
chmod -v 600 ~/.ssh/id_dsa

Questo creerà una directory di configurazione .ssh nel tuo homedir ( mkdir -p non emetterà rumori forti se ~.ssh esiste già e non farà nulla), copia i file di chiave pubblica e privata da root di homedir è il tuo, quindi imposta le autorizzazioni e la proprietà corrette sui tuoi file.

Questo non è distruttivo (non stai spostando nulla, stai solo copiando); una volta che sei felice che la coppia di chiavi ti consenta di connetterti correttamente al tuo host remoto come normale utente di accesso, puoi sudo rm -fv /var/root/.ssh/id_dsa /var/root/.ssh/id_dsa.pub Questo inoltre non influisce su nessun altro file nella cartella .ssh dell'account.

    
risposta data 07.09.2015 - 13:19
fonte
2

Apri Terminale mentre sei loggato come utente abituale, quindi esegui

mkdir ~/.ssh
sudo sh -c 'mv /var/root/.ssh/* /Users/'$USER'/.ssh/'
sudo chown $USER ~/.ssh/*
sudo chgrp $(groups | cut -d \  -f 1) ~/.ssh/*
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*

Si presume che non siano state create coppie di chiavi ssh come di consueto usate (e quindi non sono già presenti file in ~/.ssh ).

PS: alcune spiegazioni:

  • La prima sudo sposta il contenuto della cartella .ssh di root in quella dell'utente corrente. Deve essere fatto chiamando una subshell ( sh -c ) perché la parte jolly ( /var/root/.ssh/* ) funziona solo dopo che sudo ha cambiato l'utente corrente in root. $USER è una variabile di ambiente contenente il nome dell'utente corrente
  • Terzo sudo modifica la proprietà del gruppo dei file copiati nel gruppo principale dell'utente corrente. Poiché non esiste una variabile d'ambiente conveniente per questo, l'output di groups (che elenca tutti i gruppi a cui un utente appartiene) deve essere utilizzato. Prendi nota dei due caratteri di spazio dopo \ .
risposta data 06.09.2015 - 15:49
fonte

Leggi altre domande sui tag