Qual é a diferença entre lhome e home, e está causando falha na autenticação da minha chave SSH?

1

Eu tenho RHEL em execução em um sistema com minha conta tendo o privilégio de root. Meu diretório pessoal está em /lhome/myusername . Se eu tentar adicionar qualquer usuário, seu diretório pessoal será criado em /home/newuser .

Qual é a diferença entre lhome e home ?

Também estava tentando configurar uma conexão ssh usando cygwin do meu windows 7 PC. Embora eu tenha seguido todas as etapas em este tutorial , o ssh ainda solicita minha senha. Isso tem alguma coisa a ver com o meu diretório home estar no lhome?

    
por Manoj 01.01.2014 / 12:34

3 respostas

3

/lhome não é um diretório padrão. Esta é uma configuração local. Pergunte ao seu administrador de sistema.

O RHEL usa o SELinux . É possível que a localização não padrão de /lhome tenha, de alguma forma, causado uma configuração incorreta dos contextos de segurança do SELinux, o que está fazendo com que o servidor SSH não consiga ler as chaves em ~/.ssh/authorized_keys . Haverá entradas nos registros do sistema ( /var/log/messages ) se isso acontecer. Veja Red Hat Bug 499343 .

Para permitir que as chaves SSH sejam lidas, execute o seguinte comando:

restorecon -R -v ~/.ssh
    
por 02.01.2014 / 01:52
2

Embora eu tenha recebido a resposta de Gilles, há um pouco mais para adicionar à resposta dele para torná-la completa.

Primeiro, certifique-se de que a propriedade e as permissões em .ssh e authorized_keys sejam de seu usuário e sejam acessíveis somente por seu usuário.

SELinux foi informado pelo RedHat que /home/ é usado para diretórios pessoais do usuário. Se você quiser alterar / adicionar a isso (como sempre faço), há uma alteração que você pode fazer para permitir que o SELinux reconheça seu diretório alternativo como um diretório base.

De /etc/selinux/semanage.conf:

# usepasswd check tells semanage to scan all pass word records for home directories
# and setup the labeling correctly.  If this is turned off, SELinux will label /home 
# correctly only.  You will need to use semanage fcontext command.  
# For example, if you had home dirs in /althome directory you would have to execute
# semanage fcontext -a -e /home /althome

Assim, você pode executar semanage fcontext -a -e /home /lhome e, em seguida, executar novamente restorecon -RFv /lhome . Isso deve resolver o problema.

    
por 02.01.2014 / 03:32
0

Pergunte ao seu administrador de sistema.

Em algumas empresas e universidades / home é um perfil de usuário de rede, assim você pode fazer login em qualquer computador Linux na rede e terá acesso ao mesmo conjunto de arquivos, sem precisar se preocupar em executar scripts para sincronizar seus arquivos para o servidor de arquivos central.

Trabalhar fora de um diretório de rede tem um custo. AE / S de disco se torna E / S de rede, com menor taxa de transferência e maior latência. Por esse motivo, também temos / lhome, que por convenção é um local para armazenar arquivos do usuário que normalmente seriam salvos em / home, mas incorreria em um custo de rede inaceitável. Eu uso meu diretório / lhome para svn checkouts e construção de diretórios.

Exemplo rápido:

SVN checkout to /home
real    7m11.669s
user    0m16.634s
sys     0m22.194s

SVN checkout to /lhome
real    0m23.729s
user    0m6.730s
sys     0m1.814s

Isso poderia sugerir alguns problemas com a configuração do compartilhamento de arquivos de rede ou da arquitetura da LAN, mas a menos que o compartilhamento de arquivos de rede se comporte como um proxy e armazene arquivos comuns que outros usuários solicitam, provavelmente o desempenho do salvamento no disco local não exceda o compartilhamento de arquivos de rede.

    
por 08.09.2015 / 20:41