我的 android 4.4.2(它很旧,但无法升级)手机通过 SimpleSSHD 应用程序运行 SSH 服务器。它在每次登录时都会生成不同的随机密码,因此对于我作为客户端用户来说非常不方便。所以我想使用公钥认证。
之前我已经生成了一对公钥和私钥来访问 SSH 服务器。我猜重复使用密钥对是可以的,所以我将公钥文件复制到android手机上:
$ ssh-copy-id -p 2222 192.168.1.87
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/t/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password:
restorecon: invalid option -- F
usage: restorecon [-nrRv] pathname...
之后我仍然需要输入服务器生成的随机密码才能登录。
复制公钥文件到android手机不行吗?
公钥文件应该放在 Android 手机上的哪个目录中?
谢谢。
答案1
这不是安卓的问题。我相信输入密钥的约定~/.ssh/authorized_keys
来自 OpenSSH。我不相信它是标准(RFC)的一部分。简单SSHD有不同的约定:
快速开始
- 安装 SimpleSSHD。
在任何要连接到 Android 设备的计算机上,将端口设置为 2222。使用 OpenSSH,可以通过将以下行放入 ~/.ssh/config 来完成此操作:
Host myphone Port 2222
启动 SimpleSSHD,并在“设置”中启用“启动时启动”,然后首次手动启动它。
- 在主目录中创建
authorized_keys
(不要使用ssh-copy-id
)- 可选地制作 .profile
由此推断,您的授权密钥文件~/authorized_keys
不应该是~/.ssh/authorized_keys
.
ssh-copy-id
似乎假设每个服务器都是 OpenSSH 服务器。由于您已经使用设置了公钥ssh-copy-id
,我只需登录并运行:
mv ~/.ssh/authorized_keys ~