开发测试或维护VPS时,我们会使用SSH远程连接服务器,登陆后进行相关的操作。

ssh hutushen222@192.168.200.137

为了保证账户的安全,一般我们会设置一个复杂的密码,这样导致每次连接时输入密码成为很不爽的事情,即使使用了KeePass之类的工具来管理密码。

其实有一种一劳永逸的方法来解决每次输入密码的痛苦——使用密钥进行安全验证,过程如下:

$ ssh-keygen -t rsa  # 选择加密方式 rsa/dsa
Enter file in whitch to save the key (~/.ssh/id_rsa): vps_rsa # 输入保存密钥的文件名
Enter passphrase (empty for no passphrase): # 设置密钥密码,可以不设置
Enter same passphrase again: # 确认密钥密码
Your identification has been saved in vps_rsa. # 私钥
Your public key has been saved in vps_rsa.pub. # 公钥
The key fingerprint is:
10:e1:02:57:15:7a:b7:37:b3:f3:a7:de:78:6f:ec:ff hutushen222@Sailing
...
$ ssh-copy-id -i ~/.ssh/vps_rsa.pub hutushen222@192.168.200.137 # 将公钥添加到远程服务器的authorized_keys文件中

经过上述的步骤后,再使用SSH远程连接时就可以不输入密码或者输入设置的简单的密钥密码完成登陆。

注:如果机器只有自己使用可以完全不用密码;如果其他人也可以使用该机器,建议设置简单的密钥密码。

注2:要保证服务器端~/.ssh(755|700)目录和authorized_keys(600)文件都只有当前用户拥有有写权限,否则会验证无效。

参考链接