如何防止这个烦人的消息显示?它只是一个麻烦 - 一切都正常运行。警告:已将“…”(RSA)永久添加到已知主机列表中。
如何防止这个烦人的消息显示?它只是一个麻烦 - 一切都正常运行。警告:已将“…”(RSA)永久添加到已知主机列表中。
创建一个~/.ssh/config
文件,并插入以下行:
UserKnownHostsFile ~/.ssh/known_hosts
下一次访问Github时,您会看到这条消息,但之后您将不再看到它,因为主机已添加到known_hosts
文件中。这种方法修复了问题,而不仅仅是隐藏日志信息。
这个问题困扰我很长时间。该问题的原因是Windows编译的OpenSSH客户端没有检查~/.ssh/known_hosts
中的known_hosts文件。
ssh -vvv 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.
~/.ssh/config
中的~
表示用户的主文件夹。为了轻松打开它,请按下 Win-R 键,输入 cmd
回车。命令提示符应该已经在您的主文件夹中打开了。键入 cd .ssh
回车,然后键入 start .
回车 以在Windows资源管理器中打开该文件夹。然后您可以在记事本中创建config文件(保存时不要添加 .txt 扩展名)。*(专业用户可以直接在命令提示符中运行echo到新文件 ;)
).* 运行一个涉及remote的git命令两次(例如 git fetch
),您就完成了。 - ADTC在你的SSH配置文件 ($HOME/.ssh/config) 中添加以下行:
LogLevel=quiet
如果从命令行运行ssh,请在命令字符串中添加以下选项:
-o LogLevel=quiet
例如,以下代码将输出安装在machine.example.org上的gcc版本(且不产生警告):ssh -o UserKnownHostsFile=/dev/null \
-o StrictHostKeyChecking=no \
-o LogLevel=quiet \
-i identity_file \
machine.example.org \
gcc -dumpversion
loglevel=error
仍会显示“连接到<服务器>已关闭”,这对于脚本编写也非常烦人。 - Guss将LogLevel
设置为ERROR
(而不是QUIET
)在~/.ssh/config
文件中,以避免看到这些错误:
Host *
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
Host 192.* 10.* *.mylocal.domain
。 - TNTLogLevel ERROR
。 - ThangTD这条消息来自SSH,它正在警告您连接到一个之前从未连接过的主机。我不建议关闭它,因为这可能意味着你会错过有关主机密钥更改的警告,这可能表明您的SSH会话受到了中间人攻击。
~/.ssh/known_hosts
文件,看看你的主机是否在其中。 - Borealidssh-keyscan
。 - Elazar Leibovich为了抑制ssh
的警告信息,您可以在~/.ssh/config
中添加以下行:
Host *
LogLevel error
这将禁用警告,但不会禁用错误消息。与~/.ssh/config
中的其他设置一样,如果您想要更细粒度的控制,可以按主机配置LogLevel
。
~/.ssh/known_hosts
文件中,并且不会自动更新。因此,每次你都会收到警告消息。
通常在连接到重新创建的虚拟机时会发生此情况,这会更改具有相同IP地址的密钥。
解决方案
如果只有一个条目,则可以删除 ~/.ssh/known_hosts
文件,然后在第一次连接后,该密钥将生成,并且之后不会再出现警告消息。
如果有多个条目,则可以使用以下命令来删除:
$ ssh-keygen -R <hostname>
对我来说它很正常工作
ssh-keygen -t rsa -b 4096 -C "abc@abc.com"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/bitbucket_rsa
crate ~/.ssh/config
UserKnownHostsFile ~/.ssh/known_hosts
ssh-add ~/.ssh/id_rsa
你只需要这个命令。
如果是的话,使用GitHub:
ssh -T git@gitlab.com
ssh -T git@gitlab.com
我曾在Linux/CentOS虚拟机中遇到过同样的错误,这是因为IP在重启后会发生改变。为了解决这个问题,我在网络中定义了一个静态IP,并将该条目添加到/etc/hosts
文件中。对于静态IP,请提供略高的范围值。例如,如果您当前的IP(ipconfig/ifconfig)是192.168.0.102,在下一次重新启动后,可能会变成192.168.0.103。因此,在IPV4设置中定义您的静态IP为192.168.0.181即可解决问题。
The authenticity of host '...' can't be established. RSA key fingerprint is .... Are you sure you want to continue connecting (yes/no)?
的提示,或者你已经禁止了它?如果是这样的话,每次指纹都一样吗?如果不是,那就非常可怕了。更不可怕的选项是,某种方式它实际上没有成功写入主机文件,所以它每次都会尝试。看看~/.ssh/known_hosts
? - Cascabel~/.ssh/known_hosts
中列出?(它列出了5000次吗?)~/.ssh/config
文件是否存在/包含任何内容(特别是StrictHostKeyChecking
的值)? - Cascabelknown_hosts
文件内容有问题。它应该是主机密钥,位于一行上。如果你只有主机名(例如),它将无法工作。我建议你删除这个文件(如果确实只包含此单个主机的信息),并允许SSH在下次连接时创建它。之后它应该是静默的。 - tripleee