修复AWS上EC2损坏的sshd_config文件
常识: 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实例上,并修改相应的文件。以下便是详细操作:
- 关闭当前EC2实例
- 将有错误sshd_config的磁盘(EBS)拆卸
- 当磁盘重新装载到另一个EC2实例上,并挂载该磁盘
拆卸与装载都在AWS的console界面操作,装载成功后,可用以下命令挂载(我的新的磁盘名字是 xdf):
sudo mkdir /mnt/other
sudo mount /dev/xvdf /mnt/other
- 编辑损坏的文件sshd_config,修复配置与语法错误
- 反挂载并拆卸掉该磁盘
sudo umount /mnt/other
- 再次将该磁盘装载到原EC2实例上
- 启动原EC2实例,测试修改结果
这些做完之后,一切都如以前一样。又可以通过SSH KEY连上原来的实例。
结论
教训是,永远别再一次做这种事。在适当的时候,也可以给你的编辑器sudo的权限,vim的配置
cnoremap w!! %!sudo tee > /dev/null %
修复AWS上EC2损坏的sshd_config文件的更多相关文章
- 关于aws上ec2机型的种类总结汇总
在aws上ec2的机型是非常多的,但主要的种类为如下几种 General Purpose (通用型) ...
- linux上创建ftp服务器下载文件///使用AWS服务器作为代理,下载sbt相关的包
最近觉得自己下载有些jar的速度太慢了,就在aws上下好了,然后转到我电脑上来,在aws上开了ftp服务器.结果就倒腾了一上午,作个记录,以便后面查看. 1.安装vsftpd yum -y insta ...
- 十八、dbms_repair(用于检测,修复在表和索引上的损坏数据块)
1.概述 作用:用于检测,修复在表和索引上的损坏数据块. 2.包的组成 1).admin_tables语法:dbms_repair.admin_tables(table_name in varchar ...
- android 图片上传到服务端 文件损坏问题
在网上找的例子,怎么试都不行. 上传上去之后提示文件损坏,不过最后问题还是找到了. 是因为不能在写入流的byte中写入其他内容 这是网上的例子 如果是要在服务端取文件名,可以在这里写入 在服务端获取文 ...
- aws上传文件、删除文件、图像识别
目录 aws的上传.删除s3文件以及图像识别文字功能 准备工作 安装aws cli 初始化配置AWS CLI s3存储桶开通 图像识别文字功能开通 aws的sdk 上传文件 方法一 方法二 删除文件 ...
- Amazon AWS 架设EC2服务器(datizi)fanqiang (更新手机VPN/L2TP设置)
今天用AWS在东京架设了一台服务器用来个人fanqiang.为什么用AWS呢,阿里云学生价9.9可以搭在香港,但是我的学制今年2月份在学信网上就到期了,腾讯云holy shit,我司AZURE据说员工 ...
- 在亚马逊amazon的AWS上安装Node和MongoDB服务器
在亚马逊amazon的AWS上安装Node和MongoDB服务器 在建立AWS上账号.创建EC2 ,用putty链接上之后,就可以用下面的方法开始安装. !!! 如果不是是自己建立的EC2, 而是由B ...
- 从损坏的wt文件中恢复出WiredTiger集合
Reference: http://dev.guanghe.tv/2016/06/recovering-a-wiredtiger-collection-from-a-corrupt-wt-file.h ...
- 利用innodb_force_recovery修复MySQL数据页损坏
现象:启动MySQL服务时报1067错误,服务无法启动. 查看xxx.err错误日志发现有数据页损坏信息: InnoDB: Database page corruption on disk or a ...
随机推荐
- bzoj 1637: [Usaco2007 Mar]Balanced Lineup
1637: [Usaco2007 Mar]Balanced Lineup Time Limit: 5 Sec Memory Limit: 64 MB Description Farmer John ...
- CSS揭秘读书笔记 (一)
CSS揭秘读书笔记 (一) 一.半透明边框 要想实现半透明边框可以使用border: border: 10px solid hsla(0,0%,100%,.5); background: ...
- TCP_NODELAY 和 TCP_CORK主要区别
一句话总结: tcp_nodelay:禁止nagle算法,有需要发送的就立即发送,比较常见 tcp_cork:它是一种加强的nagle算法,过程和nagle算法类似,都是累计数据然后发送.但它没有 n ...
- 浏览器 CSS Hack 收集
所谓的Hack就是只有特定浏览器才能识别这段hack代码.Hack 不是什么好东西,除非没有办法,我们尽量还是不要用着玩意. 下面是各个浏览器的CSS Hack 列表. Firefox 浏览器 @-m ...
- 英語版Windows Server 2012 R2を日本語化する手順
[スタート]ボタンを押し.[Control Panel]を起動 [Clock, Language and Region]の下の[Add a Language]をクリック [Add a Language ...
- eclipse 运行报java.lang.OutOfMemoryError: PermGen space解决方法
一.在window下eclipse里面Server挂的是tomcat6,一开始还是以为,tomcat配置的问题,后面发现,配置了tomcat里面的catalina.bat文件,加入 set JAVA_ ...
- C#记录对象的变化
经常,我们会遇到一个场景,在保存对象到数据库之前,对比内存对象和数据库值的差异. 下面我写了一种实现,为保存定义一个事件,然后自动找出对象之间的差异,请注意,并没有通过反射的方式去获取每个属性及其值. ...
- openwrt 编译newifi 应用程序
首先找交叉编译工具( toolchain ) Development Snapshots http://downloads.openwrt.org/snapshots/trunk/ 我需要的版本是 m ...
- Spark源码系列(二)RDD详解
1.什么是RDD? 上一章讲了Spark提交作业的过程,这一章我们要讲RDD.简单的讲,RDD就是Spark的input,知道input是啥吧,就是输入的数据. RDD的全名是Resilient Di ...
- MAC自带的SVN进行升级
1.下载高版本svn:http://www.wandisco.com/subversion/download 2.安装 3. #1.在.bash_profile添加export PATH=/opt/s ...