常识: AWS是没有root用户的,登陆也都是通过SSH KEY完成授权认证。

背景: 正在AWS上搭一个CI (GO),与gitlab,为了将其进行集成,需将gitlab的deploy key设置成GO的SSH KEY。然而,GO创建的是无密码的用户go,导致无法进入用户go的home目录。

正常 su go 无法切换到go用户,当时又恰巧正在看SSH的config文件:

/etc/ssh/sshd_config

里面有一条 PermitEmptyPasswords no,接着便私自改成了yes,无用。PermitRootLogin no,改成 yes,依旧无用。

注:废话,肯定没用啊,这是设置SSH的。

正确的做法:

sudo su go

当修改之后,没改回来,当我退出AWS之后就杯具了。再也登陆到AWS上,因为登陆时却输密码,而实际却是没有密码。此时真想多天说一句:X。

Google了很多解决方案,都说得是用Live CD,重新引导进入,然后挂载有sshd_config文件的磁盘并修复它。这在EC2上是根本不可能的,能做的只有把root磁盘卷拆卸,再装载到另外的EC2实例上,并修改相应的文件。以下便是详细操作:

  1. 关闭当前EC2实例
  2. 将有错误sshd_config的磁盘(EBS)拆卸
  3. 当磁盘重新装载到另一个EC2实例上,并挂载该磁盘

    拆卸与装载都在AWS的console界面操作,装载成功后,可用以下命令挂载(我的新的磁盘名字是 xdf):
sudo mkdir /mnt/other
sudo mount /dev/xvdf /mnt/other
  1. 编辑损坏的文件sshd_config,修复配置与语法错误
  2. 反挂载并拆卸掉该磁盘
sudo umount /mnt/other
  1. 再次将该磁盘装载到原EC2实例上
  2. 启动原EC2实例,测试修改结果

这些做完之后,一切都如以前一样。又可以通过SSH KEY连上原来的实例。

结论

教训是,永远别再一次做这种事。在适当的时候,也可以给你的编辑器sudo的权限,vim的配置

cnoremap w!! %!sudo tee > /dev/null %

修复AWS上EC2损坏的sshd_config文件的更多相关文章

  1. 关于aws上ec2机型的种类总结汇总

    在aws上ec2的机型是非常多的,但主要的种类为如下几种 General Purpose  (通用型)                                                 ...

  2. linux上创建ftp服务器下载文件///使用AWS服务器作为代理,下载sbt相关的包

    最近觉得自己下载有些jar的速度太慢了,就在aws上下好了,然后转到我电脑上来,在aws上开了ftp服务器.结果就倒腾了一上午,作个记录,以便后面查看. 1.安装vsftpd yum -y insta ...

  3. 十八、dbms_repair(用于检测,修复在表和索引上的损坏数据块)

    1.概述 作用:用于检测,修复在表和索引上的损坏数据块. 2.包的组成 1).admin_tables语法:dbms_repair.admin_tables(table_name in varchar ...

  4. android 图片上传到服务端 文件损坏问题

    在网上找的例子,怎么试都不行. 上传上去之后提示文件损坏,不过最后问题还是找到了. 是因为不能在写入流的byte中写入其他内容 这是网上的例子 如果是要在服务端取文件名,可以在这里写入 在服务端获取文 ...

  5. aws上传文件、删除文件、图像识别

    目录 aws的上传.删除s3文件以及图像识别文字功能 准备工作 安装aws cli 初始化配置AWS CLI s3存储桶开通 图像识别文字功能开通 aws的sdk 上传文件 方法一 方法二 删除文件 ...

  6. Amazon AWS 架设EC2服务器(datizi)fanqiang (更新手机VPN/L2TP设置)

    今天用AWS在东京架设了一台服务器用来个人fanqiang.为什么用AWS呢,阿里云学生价9.9可以搭在香港,但是我的学制今年2月份在学信网上就到期了,腾讯云holy shit,我司AZURE据说员工 ...

  7. 在亚马逊amazon的AWS上安装Node和MongoDB服务器

    在亚马逊amazon的AWS上安装Node和MongoDB服务器 在建立AWS上账号.创建EC2 ,用putty链接上之后,就可以用下面的方法开始安装. !!! 如果不是是自己建立的EC2, 而是由B ...

  8. 从损坏的wt文件中恢复出WiredTiger集合

    Reference: http://dev.guanghe.tv/2016/06/recovering-a-wiredtiger-collection-from-a-corrupt-wt-file.h ...

  9. 利用innodb_force_recovery修复MySQL数据页损坏

    现象:启动MySQL服务时报1067错误,服务无法启动. 查看xxx.err错误日志发现有数据页损坏信息: InnoDB: Database page corruption on disk or a  ...

随机推荐

  1. Android 代理服务器为全网提供代理

    Android 代理服务器为全网提供代理 背景:学校WiFI过滤较严,故学生很少有可以上网账号的.而学校又分为俩层验证,第一层可以注册并且拥有访问校内网的权限,第二层为校内密码验证机(非服务器)进行用 ...

  2. memset与malloc性能测试

    memset与malloc性能测试 测试环境:2.2GHZ.2G内存 memset一段大小为1K的buf,每秒有1200万次:10K的buf,每秒有260万次:100K的buf,每秒有13万次. ma ...

  3. 【Android】 Android-wifi 直连 wifi direct wifi p2p

    现在,Android的支持Wi -Fi的直接点对点点对点(P2P)Android系统的供电设备和其他类型的设备,没有一个热点或互联网连接之间的连接.Android框架提供了一套Wi - Fi的P2P的 ...

  4. HTTP 错误 500.21 - Internal Server Error 处理程序“ExtensionlessUrlHandler-ISAPI-4.0_64bit”在其模块列表中有一个错误模块“IsapiModule” 解决方法

    IIS在发布网站后找不到首页,提示以上错误,原因是在“应用程序池”中,把对应的网站的“托管管道模式”设置为“集成”即可.

  5. Codeforces Round #379 (Div. 2) D. Anton and Chess 水题

    D. Anton and Chess 题目连接: http://codeforces.com/contest/734/problem/D Description Anton likes to play ...

  6. Android开发(三十二)——延时

    模拟延时 private class GetDataTask extends AsyncTask<Void, Void, String[]> { @Override protected S ...

  7. 在java项目中使用log4j的实例

    测试log4j的项目结构 Log4j.properties的路径为    src/config/log4j Log4j.properties文件的内容 下面定义日志输出级别是 INFO,并且配置了2个 ...

  8. 【原创】开源BI领袖-SpagoBI5.X最详细的中文版介绍

    SpagoBI是唯一100%的开源商业智能套件由 Engineering Group的SpagoBI实验室(www.eng.it)开发和管理.它提供了强大的分析能力,从传统的报表和图表功能到自助分析. ...

  9. LeetCode: Unique Paths 解题报告

    A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The ...

  10. 文件上传限制大小 dotnet/C#

    private void Button1_Click(object sender, System.EventArgs e) { if (File1.PostedFile != null) { //上传 ...