0%

服务器搭建 - 为服务器添加ssh公钥验证

1. 生成密钥对

在本地运行如下命令:

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

如果不想设置密码的话直接三次回车即可,和git生成密钥的命令相同。

生成的密钥对位置在 ~/.ssh,查看下公钥,下一步要用到。

1
cat ~/.ssh/id_rsa.pub

内容类似下面这样

1
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC+am2s/r1n+xsipi/4H2ll8p3McdhQCLBwJGNbkaxpeWKtdbiUbqAWeNt/OF13VsyWLs5lb6J2I3J6GlCcEGMGOFc4gzLTP9e/TmXeyFlBMZkuSJTbsXvL9Q/tff/8Tgt4aVAeOAgSd2jdDEvALegap4nrMHVLP8sOQlNFBMPjy1r0cW/Afp32gCtPOpQRuIkQdOnWUkzjObGanhYnX470UNsvgQ+IyikhS5tiKPqkT317v6yFV4doeZgfNYtcgpLVZcVxkItTLS1h75d4h4MD2JVRk2nBGSLp5j2WIji4Tiy++LblV1Y5Y2wRcfefdXCIMT3jMNAcyhuCaNfaD/Q== your_email@example.com

2. 添加到服务器

1
2
3
ssh root@server_ip # 登陆服务器
mkdir .ssh # 创建.ssh目录
vim .ssh/authorized_keys # 创建已验证的密钥记录文件

在vim编辑器中按i键,把上一步的公钥拷贝进来,多个公钥的话换行隔开即可。
然后按ESC键退出编辑模式,输入:wq回车即可保存文件。
这样以后输入ssh root@ip命令就可以不用输入密码直接进去了。

3. 更快捷地登陆

完成上面的配置后,还可以通过对本地ssh进行配置以进一步简化登陆操作。

在本地打开~/.ssh/config 文件

1
vim ~/.ssh/config

添加如下配置内容:

1
2
3
4
Host happy
Hostname 139.xxx.xxx.xxx
User root
IdentityFile ~/.ssh/id_rsa

以后在本地直接输入以下命令就可登陆远程服务器

1
ssh happy

多个服务器配置只需换行隔开即可。