📜  ssh - 使用公钥登录 (1)

📅  最后修改于: 2023-12-03 14:47:41.688000             🧑  作者: Mango

SSH - 使用公钥登录

在进行服务器登录时,常常需要输入密码进行验证。这对于服务器管理员而言可能是很方便的,但对于经常登录服务器的程序员而言,远程登录需要不断输入密码往往十分麻烦。SSH公钥登录这种登录方式可以解决这个问题。

什么是SSH公钥登录?

SSH公钥登录是指不用输入密码而直接登录远程Linux服务器的方法。 它通过验证本机上的公钥来登录服务器。公钥和私钥是一对密钥,它们一起组成了非对称加密体系,密钥中只有公钥可以广播给外界,私钥通常需要管理员妥善保管。

SSH公钥登录的方法是将本地公钥复制到服务器上。在登录时,SSH服务端会向客户端发送随机字符串,客户端会将其用会话密钥进行加密并发回给服务器端,服务器端解密后如果得到的字符串和之前发送的那个完全一致,就表明客户端在私钥的帮助下进行验证通过。

如何使用SSH公钥登录?
生成公钥和私钥

在本地使用命令 ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 生成 SSH 公钥和私钥,并按照提示输入保存位置和密码等信息。

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

在生成公钥和私钥之后,我们需要将公钥复制到服务器上进行使用。

将公钥复制到服务器上

命令 ssh-copy-id 可以将本地公钥复制到服务器上,以实现公钥登录。

ssh-copy-id username@remote_host

在复制公钥时会提示输入服务器账户的密码,这是为了在服务器上创建好需要存放公钥文件的文件夹等权限,并将本地公钥粘贴到远程服务器的 ~/.ssh/authorized_keys 文件中。

通过公钥登录到服务器

复制完公钥之后,我们就可以直接通过 SSH 连接服务器了。

ssh username@remote_host

可以看到,这次不需要再输入密码了。

安全性

SSH公钥登录虽然避免了密码输入的烦恼,但需要注意的是,私钥的安全性很重要。如果私钥被泄露,那么攻击者可以模拟您的身份访问所有设置好的远程服务器。所以,建议严格保护自己的私钥。

结论

SSH是一个非常安全且熟悉的远程连接工具,而通过SSH公钥登录又可以添加更多的安全措施,提高远程登录的方便性和安全性。如果您是一个经常需要远程登录的程序员,强烈建议您学习并使用这种登录方式。