我正在尝试将私钥从我的树莓派复制到 SSH 服务器(我的 Android 手机,通过简单的SSHD应用程序)。
我可以使用以下命令从 Pi 成功 ssh 到服务器:
ssh 192.168.0.123 -p 2222
但当我这样做时,我必须输入 SimpleSSHD 应用程序在(Android)屏幕上显示的密码
从文档(上面链接)中,我尝试添加私钥,这样我就不必每次通过 SSH 连接到服务器时都输入密码:
如果SimpleSSHD在客户端连接时没有找到authorized_keys文件,那么它会在此时生成一个一次性密码并将其显示在控制台日志中。因此,首次登录的过程是启动 ssh 连接,然后查看手机并输入 SimpleSSHD 应用程序屏幕上的密码。建议使用该 shell 会话来安装authorized_keys 文件。
一旦authorized_keys存在,则仅支持公钥认证。如果你搞砸了authorized_keys文件,请使用选项菜单(右上角)->重置密钥。
默认主目录现在是应用程序私有目录,通常类似于 /data/data/org.galexander.sshd/files...
在应用程序中,显示App-private路径为:/data/user/0/org.galexander.sshd/files
因此,在我的 RPi 终端上,我执行了以下操作:
ssh-keygen
当我这样做时cat ~/.ssh/id_rsa.pub
,我得到这个输出:
ssh-rsa AAAAB2Naz[long string of random letters/numbers]ASDFG pi@raspberrypi
所以我知道我已经创建了一个私钥。
现在,在 RPi 终端中,我做了:
ssh 192.168.0.123 -p 2222
并输入 SimpleSSHD 应用程序创建的密码。然后,我authorized_keys
在 HOME 目录中创建了该文件夹,正如上面链接的文档所述......我认为:
mkdir ~/authorized_keys
现在,我想我需要做的就是将 RPi 复制id_rsa.pub
到 SimpleSSHD 文件夹,对吗?所以我从 RPi 终端尝试了以下操作:
scp -P 2222 ~/.ssh/id_rsa.pub [email protected]:~/authorized_keys/id_rsa.pub
但是当我这样做时,我会在 RPi 终端中返回此信息:
id_rsa.pub 0% 0 0.0KB/s --:-- ETAlost connection
我究竟做错了什么?我已确保我已更新openssh-clients
,正如我所见这个问题
最后,要注意的是,SimpleSSHD 文档明确指出Create authorized_keys in the home directory (do not use ssh-copy-id)
,所以我没有使用ssh-copy-id
.