Eu tentei configurar um sem senha ssh b / w A
de B
e B
para A
bem. Gerou a chave pública e privada usando ssh-keygen -trsa
nas duas máquinas. Utilizou o ssh-copy-id
utilitário para copiar as chaves públicas de A
para B
e também B
para A
.
O ssh sem senha funciona de A
para B
mas not
de B
para A
. Verifiquei as permissões da pasta ~ / ssh / e parece normal.
A's .ssh
permissões de pasta:
-rw------- 1 root root 13530 2011-07-26 23:00 known_hosts
-rw------- 1 root root 403 2011-07-27 00:35 id_rsa.pub
-rw------- 1 root root 1675 2011-07-27 00:35 id_rsa
-rw------- 1 root root 799 2011-07-27 00:37 authorized_keys
drwxrwx--- 70 root root 4096 2011-07-27 00:37 ..
drwx------ 2 root root 4096 2011-07-27 00:38 .
B's .ssh
permissões de pasta:
-rw------- 1 root root 884 2011-07-07 13:15 known_hosts
-rw-r--r-- 1 root root 396 2011-07-27 00:15 id_rsa.pub
-rw------- 1 root root 1675 2011-07-27 00:15 id_rsa
-rw------- 1 root root 2545 2011-07-27 00:36 authorized_keys
drwxr-xr-x 8 root root 4096 2011-07-06 19:44 ..
drwx------ 2 root root 4096 2011-07-27 00:15 .
A
é um ubuntu 10.04 (OpenSSH_5.3p1 Debian-3ubuntu4, OpenSSL 0.9.8k 25 Mar 2009) B
é uma máquina debian (OpenSSH_5.1p1 Debian-5, OpenSSL 0.9.8g 19 de outubro de 2007)
De A
:
#ssh B
funciona bem.
De B
:
#ssh -vvv A
...
...
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key: /root/.ssh/identity ((nil))
debug2: key: /root/.ssh/id_rsa (0x7f1581f23a50)
debug2: key: /root/.ssh/id_dsa ((nil))
debug3: Wrote 64 bytes for a total of 1127
debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred gssapi-keyex,gssapi-with-mic,gssapi,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/identity
debug3: no such identity: /root/.ssh/identity
debug1: Offering public key: /root/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug3: Wrote 368 bytes for a total of 1495
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /root/.ssh/id_dsa
debug3: no such identity: /root/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
[email protected]'s password:
O que significa essencialmente que não é autenticado usando o arquivo /root/id_rsa
. Eu executei o ssh-add
comando nas duas máquinas também.
A parte de autenticação do /etc/ssh/sshd_config
arquivo é
# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile %h/.ssh/authorized_keys
# Don't read the user's ~/.rhosts and ~/.shosts files
Estou ficando sem idéias. Qualquer ajuda seria apreciada.
PermitRootLogin
em/etc/ssh/sshd_config
A?yes
caso contrário, o usuário não será solicitado a fornecer uma senha.Respostas:
Apenas certifique-se de ter seguido o seguinte procedimento:
Na máquina A
abra um terminal e insira os comandos da seguinte maneira:
Só para ter certeza de que somos raiz.
Se o comando acima exibir algo como abaixo, nós somos root else alterne para root usando o
su
comando1) Crie as chaves.
Eu não usei nenhuma senha. Se você precisar de um, pode usá-lo.
2) Copie a chave pública no
.ssh/authorized_keys
arquivo da máquina BAgora tente fazer login na máquina com
ssh 'root@mylap'
e faça o check-in:para garantir que não adicionamos chaves extras que você não esperava.
Substitua mylap pelo nome do host ou ip da máquina na qual você deseja fazer login (ou seja, máquina B)
3) Entre no B sem senha
Na máquina B
4) Crie as chaves para efetuar login novamente na Máquina A
5) Copie a chave pública no
.ssh/authorized_keys
arquivo da máquina AAgora tente fazer login na máquina com
ssh 'root@aneesh-pc'
e faça o check-in:para garantir que não adicionamos chaves extras que você não esperava.
6) Faça o login em A sem senha
Se você é capaz de concluir estas etapas, você terminou. Agora você tem duas máquinas com login ativado por ssh-key (chave pública).
fonte
/root
(770)drwxrwx--- 70 root root 4096 2011-07-27 00:37 ..
estavam muito abertas. Alterou as permissõesdrwxr-xr-x
e agora está funcionando. Não era possível imaginar o fato de a permissão do diretório pai afetar o arquivossh
.770
também definiu, mudou para a750
e está tudo certo com o mundo :) Sempre pareço esquecer que os prems linux podem funcionar ao contrário dessa maneira.Depois de configurar o ssh sem senha , ainda me pediram minha senha de usuário. Olhando para
/var/log/auth.log
a máquina remota apontou o problema:Portanto, certifique-se de que está correto:
Embora
.ssh
seja óbvio proibir outros usuários de escrever sobre sua pasta, é mais difícil ter o mesmo requisito para sua pasta pessoal.Além disso, verifique
/etc/ssh/ssd_config
se as opçõesRSAAuthentication
ePubkeyAuthentication
não estão desabilitadas. O padrão éyes
que não deve ser um problema.fonte
~/.ssh
para outra coisa e criar uma nova com minha própria chave.Provavelmente apenas um problema de permissões de nível superior. Você precisa remover as permissões de gravação do grupo e outras para o diretório inicial e o diretório .ssh. Para corrigir essas permissões, execute
chmod 755 ~ ~/.ssh
ouchmod go-w ~ ~/.ssh
.Se você ainda estiver com problemas, emita o seguinte grep em seu log:
(substitua
LOCAL_USER_NAME
pelo seu nome de usuário local ...)Espero que isso lhe conte mais sobre o seu problema, supondo que as informações de autenticação sshd estejam sendo registradas no log seguro, o que deve ser o padrão. Se você vir erros parecidos com este:
É o problema descrito acima e você precisa encontrar o diretório em questão e remover as permissões de gravação do grupo e de outros.
Pelo motivo de você precisar restringir as permissões de gravação ao seu diretório pessoal (mesmo que as permissões já estejam restritas nos diretórios .ssh e subseqüentes), outros usuários poderão renomear o diretório .ssh e criar um novo - embora seria inutilizável como é (devido a permissões incorretas) a correção para a maioria dos usuários provavelmente seria alterar as permissões em vez de verificar o conteúdo do diretório ...
TLDNR : Permitir acesso de gravação para grupo e / ou outro em seu diretório pessoal fará com que o ssh force o login da senha.
fonte
você está usando a conta root em cada máquina? Geralmente no Ubuntu, você usaria uma conta de usuário e concederia privilégios de sudo, conforme necessário.
Se o uso de um usuário não root
sudo chown $USER -R ~/.ssh
pode resolver seu problemaOutras coisas para verificar:
verifique novamente se B
id_rsa.pub
está em A'sauthorized_keys
.verifique A
/etc/ssh/sshd_config
contémfonte
/etc/ssh/sshd_config
arquivo #em / etc / ssh / sshd_config na alteração de destino
para
então mate -HUP seu PID sshd:
fonte
root
login SSH funcionar. Isso não tem nenhuma relação com o que é essa pergunta. Além disso, se aroot
conta estiver ativada (não é por padrão no Ubuntu), ativarroot
logins SSH pode ser bastante perigoso.