我将 SSH 私钥文件保存在单独的 USB 拇指驱动器(加密)上,但当我尝试使用它连接到远程主机时出现错误:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for '/Volumes/USB/id_rsa' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /Volumes/USB/id_rsa
Permission denied (publickey).
我尝试更改密钥文件的权限 (chmod 600 id_rsa),但它似乎仍设置为 777(更改未生效)。这是在 Mac OS X 上。
知道如何修复它吗?
答案1
您的 USB 驱动器上安装的是哪种类型的文件系统?如果是 FAT 文件系统之一,例如 FAT8、FAT16、VFAT、FAT32,那么您可能运气不佳,因为它们没有用于存储 Unix 样式权限位的字段。(Linux 的 UMSDOS 文件系统驱动程序确实破解了这一点,但我怀疑 OS X 是否有任何可用的破解程序。:)
如果是 NTFS 或 NTFS2,那么也许可以进行一些映射,但我不会指望它。
如果是 HFS+ 或 UFS,那么肯定需要更多细节,因为它应该按照您描述的方式工作,但符号链接可能会妨碍。
答案2
这是 Mac 上的权限问题。文件系统是 HFS+,因此第一条注释完全不正确。权限是 *nix 操作系统的基本基础,因此您应该了解这一点。
$ chmod 600 /Volumes/USB/id_rsa
答案3
我认为chmod 600 /Volumes/USB/id_rsa
就足够了。
答案4
我遇到了同样的问题,我这样做是为了解决我的问题。
这是解决方案::
解决方案 :在 /home/user/.ssh/known_hosts 中添加正确的主机密钥
无需删除整个 known_hosts 文件,只需删除该文件中有问题的行即可。例如,如果您有 3 个服务器,如下所示。
myserver1.com,64.2.5.111 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA11FV0EnGahT2EK8qElocjuHTsu1jaCfxkyIgBTlxlrOIRchb2pw8IzJLOs2bcuYYfa8nSXGEcWyaFD1ifUjfHelj94AAAAB3NzaC1yc2EAAAABIwAAAIEA11FV0E
nGahT2EK8qElocjuHTsu1jaCfxkyIgBTlxlrOIRchb2pw8IzJLOs2bcuYYfa8nSXGEcWyaFD1ifUjfHelj94H+uv304/ZDz6xZb9ZWsdm+264qReImZzruAKxnwTo4dcHkgKXKHeefnBKyEvvp/2ExMV9WT5DVe1viVwk=
myserver2.com,125.1.12.5 ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAQEAtDiERucsZzJGx/1kUNIOYhJbczbZHN2Z1gCnTjvO/0mO2R6KiQUP4hOdLppIUc9GNvlp1kGc3w7B9tREH6kghXFiBjrIn6VzUO4uwrnsMbnAnscD5EktgI7fG4ZcNUP 5+J7sa3o+rtmOuiFxCA690DXUJ8nX8yDHaJfzMUTKTGxQz4M/H2P8L2R//qLj5s3ofzNmgSM9lSEhZL/IyI4NxHhhpltYZKW/Qz4M/H2P8L2R//qLj5s3ofzNmgSM9lSEhZL/M7L0vKeTObue1SgAsXADtK3162a/Z6MGnAazIviHBldxtGrFwvEnk82+GznkO3IBZt5vOK2heBnqQBfw=
myserver3.com,125.2.1.15 ssh-rsa
5+J7sa3o+rtmOuiFxCA690DXUJ8nX8yDHaJfzMUTKTGx0lVkphVsvYD5hJzm0eKHv+oUXRT9v+QMIL+um/IyI4NxHhhpltYZKW
as3533dka//sd33433////44632Z6MGnAazIviHBldxtGrFwvEnk82/Qz4M/H2P8L2R//qLj5s3ofzNmgSM9lSEhZL/M7L0vKeTObue1SgAsXADtK3162a/Z6MGnAazIviHBldxtGrFwvEnk82+GznkO3IBZt5vOK2heBnqQBfw==
要删除第二台服务器 (myserver.com),请打开文件:
# vi +2 .ssh/known_hosts
然后点击 dd 命令删除行。保存并关闭文件。或者使用以下命令
$ vi ~/.ssh/known_hosts
现在转到第 2 行,输入以下命令
:2
现在用 dd 删除行并退出:
dd
:wq
根据您的问题查看完整的视频教程: