
Eu tenho um Mac rodando Lion em casa. Desativei a senha de login ssh; Eu só quero usar a chave pública.
Gerei um par de chaves privada/pública, mas agora estou confuso. Começo um novo trabalho amanhã e quero fazer login na minha máquina doméstica do trabalho. Todo guia que vejo diz "primeiro copie a chave pública (local) para o (servidor) ... usando uma senha".
Mas como faço isso em um novo local se desativei o login com senha?
Existe alguma maneira de acessar minha máquina doméstica de qualquer lugar se eu levar uma das chaves comigo?
Eu pensei que se eu apenas copiasse a chave pública da máquina doméstica para 'authorized_keys' da máquina doméstica e, em seguida, usasse a chave privada da máquina doméstica do meu laptop, funcionaria ...
zmbp:~ dzg$ ssh -v 192.168.1.99
OpenSSH_5.2p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data /etc/ssh_config
debug1: Connecting to 192.168.1.99 [192.168.1.99] port 22.
debug1: Connection established.
debug1: identity file /Users/dzg/.ssh/identity type -1
debug1: identity file /Users/dzg/.ssh/id_rsa type 1
debug1: identity file /Users/dzg/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.6
debug1: match: OpenSSH_5.6 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.2
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host '192.168.1.99' is known and matches the RSA host key.
debug1: Found key in /Users/dzg/.ssh/known_hosts:6
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /Users/dzg/.ssh/identity
debug1: Offering public key: /Users/dzg/.ssh/id_rsa
debug1: Authentications that can continue: publickey
debug1: Trying private key: /Users/dzg/.ssh/id_dsa
debug1: read PEM private key done: type DSA
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).
Responder1
No laptop, o cliente SSH não selecionará automaticamente uma chave com um nome não padrão, a menos que você solicite. Observe que o log diz:
debug1: Oferecendo chave pública: /Users/dzg/.ssh/id_rsa
Em outras palavras, ele oferece a chave padrão ~/.ssh/id_rsa, não a chave ~/.ssh/home.
Você deve usar ssh -i ~/.ssh/home
para especificar explicitamente a chave que deseja usar. Como alternativa, você pode renomear a chave inicial para id_rsa
ou id_dsa
no laptop, dependendo do tipo real de chave.
Além disso, sempre que possível, se você tiver problemas de autenticação de chave SSH, encontre olado do servidorlogs: o servidor registrará o motivo exato da falha de login, mas não divulgará ao cliente, pois o cliente acabou de não conseguir provar sua identidade.
Até onde o servidor sabe, o cliente não autenticado pode ser um intruso: não faz sentido fornecer a ele mais pistas do que o necessário.
Responder2
Seu entendimento está correto - você não precisa estar em um local remoto para copiar a chave pública, você pode até usar uma rede de tênis.
Embora você precise conseguir acessar a porta ssh da máquina doméstica.
Algumas dicas no meu blog:dicas de ssh seguro