问题
在运行 Mac OS 10.15.7 的 MacBook Pro 上,我无法向任何服务器执行出站 scp、sftp 或 rsync(我尝试过大约 10 个我自己的服务器)。我也无法通过 ssh 运行远程命令,例如ssh othermachine /bin/true
像 scp 一样失败。但是可以ssh othermachine
正常工作。这个问题是上周突然出现的,此前 scp 在这些机器上已经完美运行多年。
迄今为止尝试过
- 所有其他机器仍可以相互进行 scp 和 sftp 操作,包括与我的笔记本电脑所在的同一网络之间的操作。这似乎将问题缩小到我的笔记本电脑上,并特别消除了网络问题。
- 这似乎不是一个问题
~/.bashrc
——~/.profile
甚至在两台机器上完全删除这些文件也不会改变任何东西,并且前者已经包含对非交互式会话的正确处理。 - 就像我以普通用户身份运行 scp 一样,sudo 操作也会失败。尝试此操作还需要使用密码验证,因此这似乎排除了
~/.ssh/authorized_keys
我用于自动登录的问题。 - 不同版本的 ssh/scp/sftp 都失败了。我尝试了内置版本 (OpenSSH_8.1p1、LibreSSL 2.7.3) 和 Homebrew 的最新版本 (OpenSSH_9.4p1、OpenSSL 3.1.2 1 Aug 2023)。特别是,
scp -O
较新的版本也以同样的方式失败。
典型输出
我会尽可能地发布典型输出。(SE 声称它们“看起来像垃圾邮件”,但我发现其他人都可以发布它们,所以我一定是做错了什么!)
最后 20 行来自scp -vvv 随机文件本地服务器:~:
debug1: Remote: Ignored authorized keys: bad ownership or modes for file /home/me/.ssh/authorized_keys
debug3: receive packet: type 4
debug1: Remote: /home/me/.ssh/authorized_keys2:1: key options: agent-forwarding port-forwarding pty user-rc x11-forwarding
debug3: receive packet: type 91
debug2: channel_input_open_confirmation: channel 0: callback start
debug2: fd 3 setting TCP_NODELAY
debug3: set_sock_tos: set socket 3 IP_TOS 0x20
debug2: client_session2_setup: id 0
debug1: Sending subsystem: sftp
debug2: channel 0: request subsystem confirm 1
debug3: send packet: type 98
debug3: client_repledge: enter
debug1: pledge: fork
debug2: channel_input_open_confirmation: channel 0: callback done
debug2: channel 0: open confirm rwindow 0 rmax 32768
debug3: send packet: type 1
client_loop: send disconnect: Broken pipe
scp: Connection closed
答案1
突然间——噗——它又恢复正常了!我几乎什么都没做,甚至没有重新启动电脑。
我无法很好地解释这里发生了什么。也许是某种 OS X 微更新或我的本地网络上的非常微妙的问题。如果您有任何假设,我很乐意听取。