在 Linux 下管理 SSH 密钥,通常涉及创建、分发、更新和删除密钥对
对于大多数 Linux 发行版,OpenSSH 客户端和服务器已经预装。如果没有,可以使用包管理器安装。例如,在 Ubuntu 或 Debian 系统上,可以运行以下命令:
sudo apt-get update
sudo apt-get install openssh-client openssh-server
使用 ssh-keygen
命令生成一个新的 SSH 密钥对。这将创建一个公钥和一个私钥文件。例如:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
按照提示操作,可以选择默认的文件名和路径,或者自定义。如果不想设置密码,可以直接按 Enter 键。
将生成的公钥(默认为 ~/.ssh/id_rsa.pub
)复制到远程服务器的 ~/.ssh/authorized_keys
文件中。可以使用 ssh-copy-id
命令简化此过程:
ssh-copy-id user@remote_host
输入远程服务器的密码以确认权限。
现在,尝试使用以下命令连接到远程服务器:
ssh user@remote_host
如果一切正常,你将无需输入密码即可登录。
如果需要更换 SSH 密钥对,首先停止 SSH 服务:
sudo systemctl stop ssh
然后删除旧密钥对(默认为 ~/.ssh/id_rsa
和 ~/.ssh/id_rsa.pub
):
rm ~/.ssh/id_rsa*
接下来,生成新的密钥对并重复步骤 3 和 4。
如果需要从远程服务器上删除公钥,可以编辑 ~/.ssh/authorized_keys
文件,然后删除相应的行。重新启动 SSH 服务以使更改生效:
sudo systemctl start ssh
可以使用 SSH 配置文件(通常位于 ~/.ssh/config
)来管理多个 SSH 密钥。在配置文件中,可以为每个主机指定不同的密钥文件。例如:
Host server1
HostName server1.example.com
User user1
IdentityFile ~/.ssh/id_rsa_server1
Host server2
HostName server2.example.com
User user2
IdentityFile ~/.ssh/id_rsa_server2
这样,连接到 server1
和 server2
时将使用不同的密钥对。
SSH 代理可以帮助管理多个 SSH 密钥,而无需每次都手动指定密钥文件。可以使用 ssh-add
命令将密钥添加到代理中:
ssh-add ~/.ssh/id_rsa_server1
ssh-add ~/.ssh/id_rsa_server2
要连接到使用代理的主机,只需指定主机名即可:
ssh server1
要删除代理中的密钥,可以使用 ssh-add -d
命令。
定期更换 SSH 密钥对可以提高安全性。可以使用 ssh-keygen
命令生成新的密钥对,然后将旧密钥从远程服务器的 ~/.ssh/authorized_keys
文件中删除。最后,更新本地客户端的已知主机文件(通常位于 ~/.ssh/known_hosts
),以删除旧密钥的条目。
以上就是在 Linux 下管理 SSH 密钥的基本方法。请确保妥善保管私钥文件,不要泄露给他人。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。