总结问题
我遇到了一个奇怪的错误,在从 Ubuntu 20.04 客户端通过 SSH 连接到 AlmaLinux 9.2 远程服务器时将 root 密码粘贴到提示符中。
客户端:Ubuntu 20.04。LTS 远程服务器:AlmaLinux 9.2。
重现步骤:
a) 更改远程服务器 root 密码
b) 重启远程服务器
c) 通过“ssh root@server”从 Ubuntu 客户端连接到远程服务器,并将 root 密码粘贴到提示符中 -> 错误消息“权限被拒绝,请重试”。
d) 手动输入密码,无需粘贴密码->登录成功!
e) 退出主机
f) 通过“ssh root@server”再次连接到同一台主机,并将 root 密码再次粘贴到提示符中 -> 成功登录!
通过手动输入密码登录一次后,我可以重新连接并粘贴密码,直到下次更改密码并重新启动远程服务器。当服务器重新启动时,我必须再次运行从 c) 开始的相同过程。
当我说“粘贴”时,我的意思是使用“ctrl+shift+v”或右键单击 -> 粘贴”粘贴到 Ubuntu 终端中
提供详细信息和任何研究 解决方案:
停用“括号粘贴”(谢谢https://github.com/microsoft/terminal/issues/14129):
- 如果尚不存在,请创建文件 ~/.inputrc(在客户端 Ubuntu 上),并添加“set enable-bracketed-paste off”
- 打开一个新终端
- 通过“ssh root@server”连接到服务器
- 将 root 密码粘贴到提示符中 -> 登录成功!
但!:即使创建了 ~/.inputrc 文件然后随后将其删除,这仍然有效,直到下次更改密码并重新启动远程服务器。
例子:
a) 创建文件 ~/.inputrc(在客户端 Ubuntu 上)并添加“set enable-bracketed-paste off”
b)通过粘贴 root 密码连接到服务器
c) 退出主机
d)删除~/.inputrc 文件
e) 通过粘贴 root 密码连接到服务器仍然有效 - 即使使用新的终端
如果我重新启动远程服务器,我必须重新创建本地 ~/.inputrc 文件,以便能够使用 root 用户通过 SSH 连接并粘贴他的密码。
知道这里发生什么事吗?