前言
当SSH启用密钥对之后就会禁止密码连接,这种情况下安全性会大大加强。
而像阿里云这种云服务供应商则把这个流程变得非常简单。
在买服务器的时候就可以自动配置,我们要做的就是知道怎么连接它。
创建实例的注意事项
在ECS购买页面,选择Linux或Freebsd之后,下面就可以选择密钥对连接:
此时如果没有密钥对就创建一个:
点击确认后,会下载私钥文件,并且密钥对列表多了一条数据:
这里需要注意:私钥只能下载一次,请妥善保存,不能泄露也不能遗失。
回到购买页面就有密钥对可选了:
创建完成后,这台ECS就只允许私钥连接了,如果用密码是连不上的。
连接
通过阿里云自带的Workbench
在阿里云的ECS管理窗口点击远程连接选择第一个即可:
首次连接时,上传刚刚下载的私钥,即可连接成功:
通过终端的SSH
大多数情况下,我们会嫌麻烦,不想先登阿里云,然后上传私钥...(懒催生了效率)
对于直接用终端的情况,用私钥和用公钥不太一样,公钥是直接把文件扔在~/.ssh
,然后像往常那样直接连就可以了。在Github/Gitlab拉代码的时候就用到了类似功能:
https://segmentfault.com/a/1190000041713720
而阿里云这个.pem格式的文件,官方文档上给出了用法:
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:端口
- 输入用户名,不填密码
- 认证类型选私钥
- 勾选下面的私钥
- 其他不填
保存即可,以后就可以双击连接了。不用输密码也不用上传密钥。
总结
懒催生效率。
本文只发布segmentfault,禁止转载,如在其他平台看到请举报。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。