Normalmente, estou me conectando ao servidor remoto com
ssh user@server.com -p 11000
e, em seguida, fornecendo a senha sempre para o usuário. Como devo evitar digitar a senha toda vez que me conectar usando ssh?
Normalmente, estou me conectando ao servidor remoto com
ssh user@server.com -p 11000
e, em seguida, fornecendo a senha sempre para o usuário. Como devo evitar digitar a senha toda vez que me conectar usando ssh?
Respostas:
Primeiro , coloque isso em ~/.ssh/config
:
Host server
HostName server.com
Port 11000
User user
Você será capaz de ssh server
digitar a senha.
Segundo , verifique ~/.ssh/
se você possui arquivos com o nome id_rsa
e id_rsa.pub
. Caso contrário, você não tem nenhuma chave configurada, então você deve gerar um par usando ssh-keygen
. Você pode dar uma senha às chaves ou não. O arquivo gerado id_rsa.pub
deve ficar assim:
ssh-rsa lotsofrandomtext usuário @ local
Terceiro , ssh para o servidor, crie o arquivo ~/.ssh/authorized_keys
se ele não existir. Em seguida, anexe o conteúdo do ~/.ssh/id_rsa.pub
que você gerou anteriormente aqui. Isso pode significar copiar o conteúdo do arquivo para a área de transferência, abrir ~/.ssh/authorized_keys
em um editor de texto e colar o conteúdo .
Como alternativa, use o comando ssh-copy-id server
(substitua server
pelo nome em ~/.ssh/config
). Isso fará o mesmo que acima. Às vezes eu vi ssh-copy-id
ficar preso, então eu realmente não gosto disso.
Agora você deve poder ssh apenas ssh server
, a menos que tenha escolhido proteger sua chave privada com uma senha. Geralmente, se você não usa uma senha, deve proteger sua chave privada por outros meios (por exemplo, criptografia de disco completo).
Quarto (necessário apenas se você proteger sua chave privada com uma senha), coloque isso em~/.bashrc
:
start_ssh_agent() {
# Try to use an existing agent
save=~/.ssh-agent
if [[ -e "$save" ]]
then
. "$save" > /dev/null
fi
# No existing agent, start a new one
if [[ -z "$SSH_AGENT_PID" || ! -e "/proc/$SSH_AGENT_PID" ]]
then
ssh-agent > "$save"
. "$save" > /dev/null
ssh-add
fi
}
start_ssh_agent
Com isso, você precisará digitar a senha apenas uma vez por inicialização do computador.
User user
linha a ~/.ssh/config
.
Mude para autenticação baseada em chave .
ssh -P 11000
eu era capaz de copiar com ssh. Muito Obrigado.
Como complemento à resposta do phunehehe, consulte o Guia de Chaves do Gentoo Linux para obter um guia de chaves . keychain também usa ssh-agent . O daemon ssh-agent disponibiliza a senha (ela fica indisponível quando o daemon ssh-agent morre), mas o chaveiro reuses an ssh-agent between logins, and optionally prompts for passphrases each time the user logs in
, para citar o guia.