当tabby进行ssh无密码登录时发现选择了ssh agent服务,但是未检测到运行中的ssh agent时,tabby使用已保存的私钥进行身份验证。
此时Ubuntu系统中ssh远程连接报错:SSH ! Agent auth selected, but no running agent is detected
在上述情况中,猜测tabby使用了一种 ssh进行无密码登录的自动化脚本。当用户已选择ssh agent服务(默认选择)并且登录时未检测到ssh agent的运行时运行该脚本。然而,查阅资料显示使用 ssh进行无密码登录的自动化脚本中,可能会关闭 $PS1 的显示,以避免在日志中留下过多的信息。
$PS1 变量在 Bash(以及其他类似的 shell)中是一个非常重要的环境变量,它定义了命令行界面的主提示符。主提示符就是在输入命令之前看到的文本,它通常包含了用户名、主机名、当前工作目录等信息,以及可能的一些特殊字符或颜色代码来增强视觉效果。
综上所述不难看出,可能是tabby在ssh agent服务异常时启动一种ssh无密码自动登录脚本导致关闭了$PS1的显示,从而导致tabby终端没有高亮提示以及字段提示。
解决方法:检查并修改环境变量
1.使用nano文本编辑器打开.bashrc文件
2.找到PS1并更改为PS1='\[\e[0;32m\]\u@\h:\[\e[0m\]\w\$ '
3.保存并关闭文件然后再重新加载.bashrc文件
结果:验证结果发现更改并未生效,未输入完整的命令并没有字段补全,输入完整的命令并没有高亮提示。实验失败。
失败以后我开始其他尝试。输入命令echo $0发现使用的默认shell为bash,然后输入命令chsh -s /bin/zsh,将默认shell更换为zsh。此时发现虽然没有高亮提示和字段补全,但是命令未输入完整时按tab键会显示可能的命令。但是由于我刚入门Linux系统,打开.zshrc文件还是无从下手。随即转而下载安装了Oh My Zsh框架以及支持高亮提示和字段补全的插件。具体操作如下:
1.安装zsh(如果尚未安装)
sudo apt update
sudo apt install zsh
2.安装Oh My Zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
3.配置Oh My Zsh以使用命令补全和语法高亮插件
命令补全插件:
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
语法高亮插件:
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
4.在~/.zshrc文件中配置Oh My Zsh以使用插件
使用nano文本编辑器打开.zshrc文件:
nano ~/.zshrc
Ctrl键+w搜索“plugins=”
随后将光标移动到plugins数组的括号中添加zsh-autosuggestions和zsh-syntax-highlighting(用空格隔开),并确保它在其他可能与之冲突的插件之后加载(可以直接放在所有插件之后)。
注意!!!
图示加入位置为错误的加入位置,应添加到红线下面那个plugins=(git) 里面。
5.重新加载~/.zshrc配置使更改生效
source ~/.zshrc
OK,到此为止就已经成功啦!