我有一台可访问的 Ubuntu 服务器 18.04,比如说,在 example.com。我通过 SSH 从 MacOS 连接到它。
我从客户端创建密钥如下:
cd ~/.ssh
ssh-keygen -t rsa -f mykey -C "mykey"
我像这样将它们发送到服务器:
cat ~/.ssh/mykey.pub | ssh [email protected] "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys"
服务器仍然要求我输入密码。据我所知,私钥应该存储在客户端的 处.ssh/mykey
,公钥应该添加到服务器的 处~/.ssh/authorized_keys
,这就是所需的一切。但这里的情况并非如此……
欢迎任何帮助!
答案1
这是什么man 1 ssh
说:
-i identity_file
选择一个文件, 从中读取用于公钥认证的身份(私钥)。默认值为~/.ssh/id_dsa
、~/.ssh/id_ecdsa
和。还可以在配置文件中按主机指定身份文件。可以有多个选项(并在配置文件中指定多个身份)。[…]~/.ssh/id_ed25519
~/.ssh/id_rsa
-i
手册中没有提到~/.ssh/mykey
默认。除非您在配置文件中使用 或 指定密钥,否则不会使用您的密钥-i
。或者将密钥重命名为~/.ssh/id_rsa
。