我的本地计算机和远程计算机都连接到同一网络,即我的 Android 手机热点。我可以通过 ssh 连接到远程计算机,但是问题是当我尝试将一些文件复制到远程计算机时,我遇到错误消息,奇怪的是昨天scp
工作正常,但今天给出以下错误消息:scp -v file.txt [email protected]:/root
Executing: program /data/data/com.termux/files/usr/bin/ssh host 191.168.43.85, user root, command scp -v -t /root
OpenSSH_7.7p1, OpenSSL 1.0.2o 27 Mar 2018
debug1: Reading configuration data /data/data/com.termux/files/usr/etc/ssh/ssh_config
debug1: Connecting to 191.168.43.85 [191.168.43.85] port 22.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file /data/data/com.termux/files/home/.ssh/id_rsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /data/data/com.termux/files/home/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /data/data/com.termux/files/home/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /data/data/com.termux/files/home/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /data/data/com.termux/files/home/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /data/data/com.termux/files/home/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /data/data/com.termux/files/home/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /data/data/com.termux/files/home/.ssh/id_ed25519-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /data/data/com.termux/files/home/.ssh/id_xmss type -1
debug1: key_load_public: No such file or directory
debug1: identity file /data/data/com.termux/files/home/.ssh/id_xmss-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.7
ssh_exchange_identification: read: Connection reset by peer
lost connection
这是~/.ssh
从本地机器折叠的内容
# ls -la .ssh
total 12
drwx------ 2 u0_a334 u0_a334 4096 Jul 25 12:33 .
drwx------ 36 u0_a334 u0_a334 4096 Jul 25 12:05 ..
-rw------- 1 u0_a334 u0_a334 0 Jul 25 12:33 authorized_keys
-rw-r--r-- 1 u0_a334 u0_a334 175 Jul 25 11:51 known_hosts
我检查了/etc/hosts.deny
所有内容都已评论,所以它不是罪魁祸首。
这是本地计算机上的known_hosts 文件的内容
# cat .ssh/known_hosts
192.168.43.85 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBB4scw5vCUl2dssTS97+5QhiMBIk+/Tc15LoqAoS05i99jMOwRwyRpoNcKTk52d5hprkI7ECIGC9Qrh1KcIniFM=
我认为这不是重复的尝试通过 SSH 连接到服务器并获取 key_load_public: No such file or directory 错误
因为我的情况有点不同,因为我仍然可以通过.顺便说一句,我尝试了所有解决方案ssh [email protected]
尝试通过 SSH 连接到服务器并获取 key_load_public: No such file or directory 错误
编辑
生成私钥后,一切工作正常,但我仍然很困惑为什么 scp 在没有私钥的情况下工作。
答案1
问题是尝试使用不存在的 ssh 私钥 -目录内scp
没有必要的id_rsa
密钥id_dsa
id_ecdsa
/data/data/com.termux/files/home/.ssh/
自从命令
ls -la /data/data/com.termux/files/home/.ssh/
回报
total 12
drwx------ 2 u0_a334 u0_a334 4096 Jul 25 12:33 .
drwx------ 36 u0_a334 u0_a334 4096 Jul 25 12:05 ..
-rw------- 1 u0_a334 u0_a334 0 Jul 25 12:33 authorized_keys
-rw-r--r-- 1 u0_a334 u0_a334 175 Jul 25 11:51 known_hosts
有两种可能性可以修复该错误。
第一种可能性是将所需的私钥(可能是其中id_rsa
一个或其中一些)复制到目录。id_dsa
id_ecdsa
/data/data/com.termux/files/home/.ssh/
第二种可能性是明确指示使用带有(identity_file) 选项的scp
某些明确的私钥,即-i
scp -i /path/to/id_rsa file.txt [email protected]:/root
如果您不知道身份文件存储在哪里,但ssh
可以工作(如OP中所述),请使用选项执行ssh
并verbose
在连接日志中找到由以下命令使用的身份文件路径ssh
:
ssh -vvv [email protected]