-
生成密钥对
在本地计算机上生成密钥对,包括私钥(.pem)和公钥。
ssh-keygen -t rsa -b 2048 -f your_key_name.pem
这将生成 your_key_name.pem
和 your_key_name.pem.pub
两个文件。
-
将公钥上传到服务器
将生成的公钥文件private_key.pem.pub
上传到服务器。你可以使用scp或其他文件传输工具,例如:
scp /path/to/private_key.pem.pub user@server_ip:/tmp
这会将公钥文件复制到服务器上的/tmp目录中。
-
将公钥添加到授权列表
在服务器上登录,并将公钥添加到目标用户的~/.ssh/authorized_keys文件中。如果该文件不存在,可以创建它:
cat /tmp/private_key.pem.pub >> ~/.ssh/authorized_keys
确保~/.ssh/authorized_keys
的权限设置为600
:
chmod 600 ~/.ssh/authorized_keys
-
禁用密码验证(可选)
如果你想要完全禁用密码验证,可以编辑SSH服务器的配置文件/etc/ssh/sshd_config
,并确保以下行被设置为:
PubkeyAuthentication yes
PasswordAuthentication no
AuthorizedKeysFile .ssh/authorized_keys
AuthorizedKeysFile
是 SSH 服务器配置文件中的一个选项,用于指定 SSH 服务器在哪里查找用户的公钥文件。默认情况下,该选项设置为.ssh/authorized_keys
,表示 SSH 服务器将在用户的~
目录下的 .ssh
目录中查找名为authorized_keys
的文件。
通过设置AuthorizedKeysFile
选项,你可以指定不同的公钥文件,或者将公钥文件存储在其他位置。
-
重启SSH服务
在修改了SSH配置后,务必重启SSH服务,以使更改生效。你可以使用以下命令重启SSH服务:
sudo systemctl restart ssh
完成这些步骤后,就可以使用私钥文件连接到服务器了。
ssh -i /path/to/private_key.pem user@server_ip