我试图按照这个答案通过 ssh 登录到我的服务器,而不必每次都输入极长的密码: https://serverfault.com/a/241593/295203
目前我的authorized_keys中有6个密钥:
(base) -bash-4.1$ wc -l ~/.ssh/authorized_keys
6 /home/[myusername]/.ssh/authorized_keys
我的第一反应是删除其中的所有密钥,然后执行ssh-copy-id id@server
上述链接中的步骤。但是,我担心如果我这样做,就会被彻底锁定。
我的最终目标:
- 从我运行的工作计算机
ssh-keygen -t rsa -b 2048
,无需使用密码即可登录到远程服务器。 - 从任何其他计算机都需要密码。
答案1
我会:
- 连接到服务器时备份你的 ~/.ssh/authorized_keys
- 在终端文本编辑器(nano/vi/...)中打开我的 ~/.ssh/authorized_keys 文件
- 通过查看这些行,识别你的工作计算机的公钥
- 删除所有其他行,保存
- 在仍处于连接状态时尝试从另一个终端建立 ssh 连接以确保安全。
- 如果失败,恢复备份并重试,直到成功。
答案2
我不清楚您指的是密码密钥还是帐户密码,所以我假设您指的是帐户密码。
首先,您可以通过执行以下命令删除密钥的密码,这样您就可以使用密钥对登录到服务器而无需输入密码(当要求输入密码时只需按回车键):
$ ssh-keygen -p -f ~/.ssh/id_rsa
其次,您可以使用您的帐户密码从任何其他计算机登录,而无需传递私钥。
不过,如果是公开的服务器,我认为你不应该这样做。服务器强化的最佳实践建议不要使用密码登录。