前言

当SSH启用密钥对之后就会禁止密码连接,这种情况下安全性会大大加强。
而像阿里云这种云服务供应商则把这个流程变得非常简单。
在买服务器的时候就可以自动配置,我们要做的就是知道怎么连接它。

创建实例的注意事项

在ECS购买页面,选择Linux或Freebsd之后,下面就可以选择密钥对连接:

image.png

此时如果没有密钥对就创建一个:

image.png

点击确认后,会下载私钥文件,并且密钥对列表多了一条数据:
image.png
image.png

这里需要注意:私钥只能下载一次,请妥善保存,不能泄露也不能遗失。

回到购买页面就有密钥对可选了:

image.png

创建完成后,这台ECS就只允许私钥连接了,如果用密码是连不上的。

连接

通过阿里云自带的Workbench

在阿里云的ECS管理窗口点击远程连接选择第一个即可:
image.png

首次连接时,上传刚刚下载的私钥,即可连接成功:
image.png

通过终端的SSH

大多数情况下,我们会嫌麻烦,不想先登阿里云,然后上传私钥...(懒催生了效率)
对于直接用终端的情况,用私钥和用公钥不太一样,公钥是直接把文件扔在~/.ssh,然后像往常那样直接连就可以了。在Github/Gitlab拉代码的时候就用到了类似功能:
https://segmentfault.com/a/1190000041713720

而阿里云这个.pem格式的文件,官方文档上给出了用法:

image.png

ssh -i ~/ecs.pem ecs-user@10.10.xx.xxx

命令很简单,但连接时可能会出现WARNING: UNPROTECTED PRIVATE KEY FILE!

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0666 for '/home/testuser/ssh.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/home/testuser/ssh.pem": bad permissions
user@123.123.123.123: Permission denied (publickey).

翻译一下就是:出于安全考虑,你的私钥有多余的权限
(Linux权限分为读、写、执行,并且对于自己、同组的人、其他人可以分别设置权限)
出现上述提示时,说明除了自己以外,同组人和其他人也对这个文件有权限,这样可能导致私钥泄露
所以,要把密钥的权限改为400(仅自己有读权限)

chmod 400 ~/ssh.pem

然后就成功了。

第三方客户端

Linux有个开源的远程客户端Remmina,支持RDP、SSH、SPICE、VNC、X2Go、HTTP/HTTPS。

安装也比较简单,以Ubuntu为例:

sudo apt-add-repository ppa:remmina-ppa-team/remmina-next
sudo apt update
sudo apt install remmina remmina-plugin-rdp remmina-plugin-secret

然后新建一个连接:

  • 类型选SSH
  • 输入IP:端口
  • 输入用户名,不填密码
  • 认证类型选私钥
  • 勾选下面的私钥
  • 其他不填

image.png

保存即可,以后就可以双击连接了。不用输密码也不用上传密钥。

总结

懒催生效率。

本文只发布segmentfault,禁止转载,如在其他平台看到请举报。


LYX6666
1.6k 声望73 粉丝

一个正在茁壮成长的零基础小白