我不确定我是否理解 的目的~/.ssh/authorized_keys
。
在我的~/.ssh
目录中,我有
-rw------- 1 tomcat tomcat 1685 Nov 4 2016 authorized_keys
-rw------- 1 tomcat tomcat 1671 Nov 21 2011 id_rsa
-rw-r--r-- 1 tomcat tomcat 413 Nov 21 2011 id_rsa.pub
-rw-r--r-- 1 tomcat tomcat 7111 Jul 14 09:30 known_hosts
如果id_rsa.pub
包含我的公钥,为什么我需要authorized_keys
列出哪些人可以作为我的用户进行 SSH?那不是只有那个用户吗?
在公钥之上通过authorized_keys进行额外授权的目的是什么?
答案1
authorized_keys 文件由有权远程访问该系统上该帐户的用户的公钥组成。
一般来说,每个系统上的每个用户帐户都有一组密钥。私钥仅保存在创建它的系统上,而公钥则复制到其他系统。对于 SSH,公钥将被复制到远程系统上您帐户的authorized_keys 文件中。使用密钥比依赖密码进行 SSH 访问更方便、更安全。
想象一下,您正在设置一个远程服务器,您和其他几个人将通过该服务器上的共享帐户来操作该服务器。您将本地系统中的公钥以及其他人的公钥复制到该远程系统的authorized_keys 文件中。这将允许所有人在设置后立即通过密钥访问该远程服务器。如果您要设置许多相同的服务器,则只需将相同的authorized_keys 文件复制到每个服务器即可。如果有人离开团队,您只需从authorized_keys 文件中删除他们的公钥,他们就不再有权访问该系统。
以下是有关 SSH 的一些更一般的信息:
答案2
您在工作时的计算机上可能有一个单独的密钥,并且也允许自己使用该密钥进行访问。那么您需要在authorized_keys 文件中添加两个密钥。