保护你的私人 gpg 和 ssh 密钥不被其他人访问 ssh

保护你的私人 gpg 和 ssh 密钥不被其他人访问 ssh

有个人 A 和个人 B,他们彼此都有对方的 ssh 公钥,因此这意味着他们可以访问彼此的 shell。

现在他们可以访问彼此的私人 ssh 和 gpg 私钥。并且他们可以轻松地导出私钥并将其发送给自己。

有没有办法让他们无法访问这些密钥或无法导出它们。

有没有办法限制他们互相访问 ~/.gnugp 和 ~/.ssh 文件夹

提前致谢

编辑 好的,我尝试用我的两台电脑,我用我的笔记本电脑访问我的系统

amr@amr-Notebook:~$ ssh [email protected]
[email protected]'s password: 
Welcome to Ubuntu 12.04.1 LTS (GNU/Linux 3.2.0-29-generic-pae i686)

 * Documentation:  https://help.ubuntu.com/

11 packages can be updated.
0 updates are security updates.


The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

rusty@rusty-MS:~$ exit
logout
Connection to 192.168.1.8 closed.
amr@amr-Notebook:~$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
[email protected]'s password: 
Now try logging into the machine, with "ssh '[email protected]'", and check in:

  ~/.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

amr@amr-Notebook:~$ ssh [email protected]
Welcome to Ubuntu 12.04.1 LTS (GNU/Linux 3.2.0-29-generic-pae i686)

 * Documentation:  https://help.ubuntu.com/

11 packages can be updated.
0 updates are security updates.

Last login: Sat Sep  8 21:01:06 2012 from amr-notebook.local
rusty@rusty-MS:~$ 
rusty@rusty-MS:~$ cd .ssh/
rusty@rusty-MS:~/.ssh$ ls
authorized_keys  id_rsa  id_rsa.pub
rusty@rusty-MS:~/.ssh$ 

我通过笔记本电脑访问我的桌面,只需要我的 shh 和密码

然后我注销并将我的公钥发送到桌面系统

然后我再次尝试使用 ssh,这次它让我进入

正如你在上面看到的,我可以轻松访问桌面系统的 ssh 文件夹并查看所有密钥

现在有什么办法可以让我不再能够访问我的桌面 .ssh 文件夹,也无法访问桌面公钥和私钥吗?

谢谢

答案1

根据您的示例,有两个人和两台计算机,应该有四个帐户:

  • 在 Rusty 的桌面上:~rusty/ 和 ~shiny/

  • 在 Shiny 的笔记本电脑上:~rusty/ 和 ~shiny/

在桌面上,你可以拥有〜rusty的私钥和公钥;以及〜/shiny的公钥

在笔记本电脑上,你可以拥有 ~rusty 的公钥和 ~shiny 的公钥和私钥

Rusty 可以通过 ssh 进入笔记本电脑上自己的帐户,而 Shiny 可以通过 ssh 从笔记本电脑进入台式机。

Shiny 无法看到 rusty 的私钥,因为他无法进入 rusty 的台式机账户;Rusty 也无法看到 shiny 的私钥,因为他无法进入 shiny 的笔记本电脑账户。如果没有私钥,他们即使有相应的公钥,也无法登录对方的账户。

每个系统的管理员(或根)都可以看到每个帐户,但只要台式机是 Rusty,笔记本电脑是 Shiny,并且他们没有将彼此添加到 sudoers 组,他们仍然无法看到彼此的秘密私钥。

请记住,将任何公钥发送给任何人都是可以的——这不是一个安全问题。

答案2

SSH 代理是您的好朋友。请仅将您的 SSH 私钥存储在您的私人安全设备上。使用 ssh 的 -A 选项调用代理转发到其他主机并通过其他主机转发。如果没有内核级监听和非常先进的 SSH 内存取证(大多数人不具备这种技能,也没有工具可以自动执行此操作),SSH 服务器的用户或任何其他中间服务器将无法窃取您的密钥。

me@my-secure-laptop$ ssh -A [email protected]

您可能还对利用钥匙串应用程序来提高安全性感兴趣。

$ aptitude search keychain
i   keychain  
key manager for OpenSSH

相关内容