![SSH 对密钥身份验证仍需要密码](https://linux22.com/image/203364/SSH%20%E5%AF%B9%E5%AF%86%E9%92%A5%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E4%BB%8D%E9%9C%80%E8%A6%81%E5%AF%86%E7%A0%81.png)
我有两个运行linux操作系统的板:客户端运行raspberry操作系统,服务器运行ubuntu18.04。在客户端上,我使用以下命令生成 SSH 密钥对:
ssh-keygen
它提示我输入一个文件来保存密钥,我写的是my_key。之后,我按 Enter 键将密码填空。它生成 2 个文件:/home/asd/.ssh/my_key 和 /home/asd/.ssh/my_key.pub
使用这个命令:
ssh-copy-id -i /home/asd/.ssh/my_key.pub client_username@hostname
我复制了服务器上的公钥。我检查了一下,到目前为止一切都很好。当我尝试连接到服务器时,它提示我输入密码。为什么?
如果我生成 SSH 密钥对,并将存储位置的名称文件填写为默认值 (/home/asd/.ssh/id_rsa),我可以连接到服务器而无需询问我密码。当我选择自己的存储密钥的文件名时,我是否做错了什么?
编辑:要连接到服务器,我使用了下一个命令:
ssh client_username@ip_server
答案1
谢谢@steeldriver,这是解决我问题的回复。基本上,当您创建具有非默认名称的 SSH 密钥对时,要使用 SSH 连接到服务器,您还应该使用 -i 参数提供公钥
ssh username_server@host_server_ip -i path_to_public_key