钥匙串 SSH 密钥管理器阻止 CentOS 上的 SFTP 登录

钥匙串 SSH 密钥管理器阻止 CentOS 上的 SFTP 登录

我安装了keychain它并将其添加到我的.bashrcCentOs 中以帮助管理我的 SSH 密钥:

/usr/bin/keychain --clear $HOME/.ssh/id_rsa
source $HOME/.keychain/$HOSTNAME-sh

因此,在 SSH 登录时,系统会提示我输入密钥密码,该密码将持续到重新启动或会话终止。

启用此功能后,任何 SFTP 登录尝试都会在身份验证时停止。如何在忽略 SFTP 登录的情况下启用钥匙串支持?这可能吗?我不想在需要做某事时必须启用/禁用。

答案1

看起来您的登录 shell 是 bash,并且您的 SSH 服务器配置为调用您的登录 shell 来运行 SFTP 服务器。

您可以设置 sshd 来直接运行 SFTP 服务器,方法是在 中添加如下行/etc/sshd_config

Subsystem sftp /usr/lib/openssh/sftp-server

或者

Subsystem sftp internal-sftp

您还可以通过更改您的.bashrc.这样做的好处是还可以修复 ssh 的其他非交互式使用的问题,例如 scp、rsync 等。bash 中存在一个设计错误:它加载.bashrc交互式非登录 shell 和非交互式远程登录炮弹,尽管这两种情况完全没有共同点。在文件顶部添加一个防护,.bashrc以在非交互式设置中忽略文件的其余部分:

[[ $- = *i* ]] || return

相关内容