Você pode copiar sua chave pública para as máquinas remotas. Contanto que eles tenham a autenticação de chave pública ativada e sua chave pública esteja presente na máquina remota, você poderá ssh
acessar as máquinas sem precisar fornecer uma senha.
Primeiro, você precisará gerar um par de chaves público / privado, da seguinte forma:
ssh-keygen -t rsa
Siga as instruções. Quando perguntar se você deseja proteger a chave com uma senha, diga SIM! É uma prática recomendada não proteger suas chaves com senha e mostrarei como é necessário digitar a senha de vez em quando.
Se você já possui um par de chaves, pode pular a etapa acima.
Agora, supondo que sua chave ssh exista no seu Mac ~/.ssh/id_rsa.pub
, você pode instalá-la em uma máquina remota executando:
cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Para o seu exemplo de servidor específico citado acima, o comando seria semelhante a:
cat ~/.ssh/id_rsa.pub | ssh -p 2200 root@123.456.789.012 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Você precisará digitar a senha para root@123.456.789.012
executar esta cópia, mas essa deve ser a última vez que você precisará fazer isso. Supondo que o servidor remoto sshd
esteja configurado para fazer autenticação de chave pública-privada, quando você acessa a caixa agora, ele não deve solicitar uma senha para a root
conta - em vez disso, solicita a senha da sua chave . Leia sobre como fazer disso algo que você não precisa inserir o tempo todo.
Repita o procedimento acima para todas as máquinas nas quais você deseja conectar com as chaves em vez de com a senha.
Observe que qualquer pessoa que obtenha o ~/.ssh/id_rsa
arquivo em espera pode enviar ssh para esta máquina root
sem fornecer uma senha para a máquina remota. A senha que protege o arquivo de chave garante que eles precisem saber a senha dessa chave para usá-lo. Verifique se o arquivo está seguro. Use a criptografia de disco no seu Mac e mantenha as permissões no arquivo e no ~/.ssh/
diretório.
Para facilitar o uso da chave sem precisar digitar a senha todas as vezes, o OS X executa um ssh-agent
processo em segundo plano na sua máquina. Esse agente armazenará em cache o par de chaves na primeira vez em que você o usar, para que você precise digitar sua senha de vez em quando. Se você dorme apenas o seu mac, nunca o reinicia, você pode passar longos períodos sem precisar digitar sua senha.
Você pode pré-armazenar em cache todas as suas chaves SSH ssh-agent
executando o seguinte:
ssh-add
Agora você só precisa se lembrar da senha da chave , não das muitas senhas de conta diferentes. Normalmente, mantenho minhas senhas principais no 1Password (sem afiliação), simplificando ainda mais quantas senhas eu preciso lembrar. Depois, eu os pesquiso no 1Password e os recordo e colo no Terminal na hora ímpar em que reinicio o Mac e faço com que minha execução ssh-agent
seja reiniciada.
Se você combinar copiar sua chave para máquinas remotas com a solução de gerenciamento de conexão Terminal.app nesta pergunta , terá algo muito próximo da experiência de conexão PuTTY para GUI.
No lado do servidor, verifique /etc/ssh/sshd_config
e verifique se:
PubkeyAuthentication yes
está ativado na configuração (por padrão no OpenSSH). Você também pode definir:
PasswordAuthentication no
Enquanto você está lá, a autenticação baseada em senha é desativada e as chaves se tornam a única maneira de acessar a máquina.
Você precisará reiniciar o sshd na máquina se fizer alguma alteração no arquivo de configuração.