我正在尝试使用以下命令连接到我的 Linux 服务器:
ssh-keygen -t rsa
然后我这样做:
cat ~/.ssh/id_rsa.pub | ssh myusername@myserver_ip 'cat >> .ssh/authorized_keys'
然后我转到我的远程服务器,看到已创建“authorized_keys”文件。但是当我尝试执行“ssh myusername@myserver_ip”时,它仍然提示我输入密码?
为什么???
答案1
好的,首先请确保您在 /etc/ssh/sshd_config 中启用了此选项
RSAAuthentication yes
PubKeyAuthentication yes
AuthorizedKeysFlle %h/.ssh/authorized_keys
其次,为了将密钥从 ServerA(您生成密钥的地方)复制到 ServerB(您想要登录的地方),请使用以下命令:
ssh-copy-id your_username@your_serverB_Ip
如果 ServerA 没有 ssh-copy-id 命令,请在 ServerA 中复制密钥的第一行(不带最后 2 个字符),然后将其粘贴到 ServerB 的 Authorized_Keys 文件中。之后,自己输入刚刚复制的行中缺少的字符以及第 2 行中的第一个字符,这样可以避免在将密钥从 ServerA 粘贴到 ServerB 时在密钥的第一行和第二行之间添加“新行”。对第三行重复此操作
答案2
~/.ssh
验证目录及其内容的所有权和权限:
$ sudo chown -R <user> ~/.ssh
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/*
答案3
您可能需要检查 sshd_config 以确保这些功能已启用:
RSAAuthentication yes
PubkeyAuthentication yes
一旦将这些设置为“是”,那么您将需要重新启动 ssh。