Don*_*lor 185 git ssh shell terminal command-line
每次我使用git与远程交互时,例如拉或推时,我都会看到以下消息:
警告:永久性地将"..."(RSA)添加到已知主机列表中.
如何防止显示这条恼人的消息?这只是一个烦恼 - 一切正常.
Jer*_*wdy 230
解决方案:创建~/.ssh/config文件并插入行:
UserKnownHostsFile ~/.ssh/known_hosts
Run Code Online (Sandbox Code Playgroud)
然后,您将在下次访问Github时看到该消息,但之后您将不会再看到它,因为主机已添加到known_hosts文件中.这解决了问题,而不仅仅是隐藏日志消息.
这个问题困扰了我很长一段时间.出现此问题的原因是为Windows编译的OpenSSH客户端不检查中的known_hosts文件~/.ssh/known_hosts
ssh -vvvvvvvvvvvvvvvvvvv git@github.com
debug3: check_host_in_hostfile: filename /dev/null
debug3: check_host_in_hostfile: filename /etc/ssh/ssh_known_hosts
debug3: check_host_in_hostfile: filename /dev/null
debug3: check_host_in_hostfile: filename /etc/ssh/ssh_known_hosts
Warning: Permanently added 'github.com,207.97.227.239' (RSA) to the list of known hosts.
Run Code Online (Sandbox Code Playgroud)
Kyl*_*per 86
将以下行添加到ssh配置文件($ HOME/.ssh/config):
LogLevel=quiet
Run Code Online (Sandbox Code Playgroud)
如果从命令行运行ssh,请在命令字符串中添加以下选项:
-o LogLevel=quiet
Run Code Online (Sandbox Code Playgroud)
例如,以下打印出machine.example.org上安装的gcc版本(并且没有警告):
ssh -o UserKnownHostsFile=/dev/null \
-o StrictHostKeyChecking=no \
-o LogLevel=quiet \
-i identity_file \
machine.example.org \
gcc -dumpversion
Run Code Online (Sandbox Code Playgroud)
小智 55
设置LogLevel为ERROR(不QUIET)在~/.ssh/config文件中以避免看到这些错误:
Host *
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
Run Code Online (Sandbox Code Playgroud)
小智 5
该消息来自SSH,它警告您正在连接到以前从未连接过的主机。我不建议您将其关闭,因为这意味着您可能会错过有关主机密钥更改的警告,该警告可能表示对SSH会话的MITM攻击。
要禁止显示警告消息,ssh可以将以下行添加到~/.ssh/config:
Host *
LogLevel error
Run Code Online (Sandbox Code Playgroud)
这将禁用警告,但不会禁用错误消息。与中的其他设置一样,如果您想要更细粒度的控制~/.ssh/config,您可以LogLevel在每个主机的基础上进行配置。