前言
SSH默认使用密码验证登录,这种登录方式存在一些问题:弱密码不安全,复杂密码易忘记,每次登录还需手动输入等麻烦。而使用SSH密钥登录,则完全解决上述方法存在的问题,不仅安全可靠,而且自动登录,省时省力。SSH 密钥登录采用的是非对称加密,需要两个密钥成对使用,分为公钥(public key)和私钥(private key)。如果数据使用公钥加密,那么只有使用对应的私钥才能解密,其他密钥都不行;反过来,如果使用私钥加密(称为“签名”),也只有使用对应的公钥解密。
今天以搬瓦工VPS为例,做下密钥设置和使用的案例,供大家交流学习。
SSH Key密钥设置与使用
- puttygen.exe执行生成
- 终端执行ssh-keygen命令生成
puttygen.exe生成密钥与使用
- 启动puttygen.exe,根据界面工具栏Key的参数配置生成,点击“Generate”按钮;
- 完成密钥生成后,需要把公钥信息全选复制,粘贴至搬瓦工SSH KEY的页面的Paste new public SSH keys here····处,点击“Save SSH Keys”按钮,即可完成公钥上传vps;
- 在puttygen.exe界面,点击“Save private key”按钮,保存导出对应的私钥文件,文件名自定义即可。
下面按重装和不重装操作系统两种场景演示,大家根据需要二选其一即可。
- 打开Finalshell.exe,打开“连接管理器”,“编辑”需要使用密钥登录的vps,认证方法选择“公钥”;
- 点击私钥“浏览”按钮,将其刚刚导出的私钥文件按照文件存放路径,导入即可,最后点击“确定”完成编辑;
- 找到“快速连接”的vps,双击即可实现密钥登录。
- 启动puttygen.exe,点击“Generate”按钮;
- 完成密钥生成后,需要把公钥信息全选复制,打开Finalshell登录vps,打开/root/.ssh/authorized_keys,粘贴公钥信息并保存;
- 在puttygen.exe点击“Save private key”按钮,保存导出私钥文件并记好私钥存放路径;
- 回到Finalshell软件,打开“连接管理器”,“编辑”需要使用密钥登录的vps,认证方法选择“公钥”;
- 点击私钥“浏览”按钮,将其刚刚导出的私钥文件按照文件存放路径,导入即可,最后点击“确定”完成编辑;
- 找到“快速连接”的vps,双击即可实现密钥登录。
ssh-keygen命令生成密钥与使用
ssh-keygen命令生成密钥可以在服务端或客户端执行,只不过客户端涉及上传相对麻烦点,所以这里还是以搬瓦工vps为例,在vps终端做下服务端生成密钥演示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
root@localhost:~# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa Your public key has been saved in /root/.ssh/id_rsa.pub The key fingerprint is: SHA256:sz9MGBOnPXb/vXF5D1MZRepYthmVAp2lSdFcgVA/TI0 root@localhost.localdomain The key's randomart image is: +---[RSA 3072]----+ | o=+B*X| | . . .=E*o| | = o*= | | + + .= ++| | S= o..+..| | .o. ...| | .o o++| | .o oB| | .. .o| +----[SHA256]-----+ root@localhost:~# chmod 600 ~/.ssh/id_rsa root@localhost:~# chmod 600 ~/.ssh/id_rsa.pub cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys |
- 使用Finalshell登录vps终端,输入ssh-keygen敲回车;
- 系统提示密钥存放默认路径,这里默认路径敲回车;
- 系统提示是否为私钥提供加密,回车为不加密,这里输入“yugogo”加密。
密码自定义
- 分别对生成的公私密钥文件释放权限,
chmod 600 ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa.pub;
- 使用Finalshell打开/root/.ssh/authorized_keys,把原有的公钥信息删除并保存,没有的跳过此步骤;
- 输入
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
敲回车,将公钥信息导进authorized_keys文件里; - 在Finalshell文件中,此/root/.ssh路径,选择id_rsa下载私钥文件到本地;
- 关闭原有连接,打开“连接管理器”,“编辑”需要使用密钥登录的vps,认证方法选择“公钥”;
- 点击私钥“浏览”按钮,将其刚刚下载的私钥文件按照存放路径导入,私钥密码填入:“yugogo”,最后点击“确定”完成编辑;
- 找到“快速连接”的vps,双击即可实现密钥登录。
SSH Key后记
如果想禁用vps密码验证登录,可以在vps终端,找到sshd的配置文件/etc/ssh/sshd_config,将PasswordAuthentication这一项设为no。
SSH密钥登录确实比密码登录验证更安全可靠,但用上并不代表绝对安全,需要保管好私钥文件,不能泄露私钥,除非给私钥再加一层密码保护,大家根据自己需要安排。
注意:上述不论何种方法,在操作过程中,务必将公钥和私钥信息整理完毕,确保私钥文件下载到本地,才能关闭已有连接的终端界面,否则vps因找不到私钥文件最终无法解密公钥验证登录,只能以密码形式验证或搬瓦工控制面板找到“Root password reset”重置。
puttygen.exe和ssh-keygen命令生成密钥与使用,个人从便利角度建议大家使用puttygen.exe本地生成密钥更稳妥。
最新评论
这个怎么开启啊,好像开启的命令不对
请问博主,代理列表中线路前的国旗图标是如何实现的呢?
AQWorlds
感谢分享,如果厌倦搭建的繁琐步骤,不妨来 devpn.store 看看,也许正是您需要的。
谢谢分享,devpn.store 有提供trojan和vpn服务,7天免费试用。
这个价格是大家共用,不是独用!所以正常。。。。
提供高速稳定科学上网节点,月付16,年付150,可试用 联系方式 telegram: @hellowordnew QQ: 3604500082
ios 有 sing-box testflight app