1.2*_*tts 6 security sftp security-warning
我已经从使用 TLS 的 FTP 切换到 SFTP,现在当我尝试连接时出现一个对话框,说 www.example.com 的未知主机密钥。然后它提供了两个选项拒绝和允许。
这是什么意思?我应该选择允许还是拒绝?
Mar*_*iae 10
SFTP 基于 SSH;您连接的主机,就像使用 ssh 一样,将为您提供一个唯一的密钥,让您可以识别它们。如果您接受该密钥,则以后任何时候您连接到同一主机时,都会根据第一次提供的密钥(存储在 $HOME/.ssh/known-hosts 中)检查所提供的密钥,并且两者是否匹配你不会再被问到;相反,如果两个密钥不匹配,您将收到可能的攻击(中间人攻击,MTIM)的警告。
所以它基本上是一个安全功能。SSH 基于 TOFU(首次使用信任)。这意味着在与系统管理员核对所提供的密钥确实是他们的后,您必须接受该密钥,然后继续建立通信。
编辑:
除了询问(可能不存在的)系统管理员之外,如何检查我们是否获得了正确的密钥?当您第一次连接到 SSH/SFTP 服务器时,您会看到如下内容:
$ ssh me@remote
The authenticity of host '[remote]:22 ([192.168.1.72]:22)' can't be established.
ECDSA key fingerprint is b2:2d:52:1a:40:c2:f9:ca:9a:42:86:76:f4:0b:eb:84.
Are you sure you want to continue connecting (yes/no)?
Run Code Online (Sandbox Code Playgroud)
记下指纹的种类(上面的 ECDSA)和上面的指纹本身b2:2d:52:1a:40:c2:f9:ca:9a:42:86:76:f4:0b:eb:84。现在转到服务器(物理上,或者在 VPS 的情况下,到控制台),并且无需任何操作sudo su,转到 /etc/ssh.conf 。你会看到有很多.pub文件;一个是 ssh_host_ecdsa_key.pub(我们看到的指纹类型)。现在发出这个命令:
$ ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub
Run Code Online (Sandbox Code Playgroud)
它的输出必须与您上面提供的指纹匹配。如果是,您现在可以在 ssh 会话中接受密钥指纹,并继续 ssh 进入服务器。
无需从服务器导入任何内容:ssh 会为您处理这些。
| 归档时间: |
|
| 查看次数: |
8662 次 |
| 最近记录: |