scp 不起作用,但 ssh 起作用

scp 不起作用,但 ssh 起作用

我的本地计算机和远程计算机都连接到同一网络,即我的 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_dsaid_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_dsaid_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中所述),请使用选项执行sshverbose在连接日志中找到由以下命令使用的身份文件路径ssh

ssh -vvv [email protected]

相关内容