本文主要针对 Azure VM 被锁住不能使用 SSH 登陆的解决办法。

在Azure的虚拟机中,想创建一个SFTP用户且想限制这个SFTP用户只能访问固定的目录,于是对sshd_config进行修改,在配置文件中增加了 ChrootDirectoryForceCommand Match UserAllowTcpForwarding 設定。

重启ssh服务后,造成所有User只能使用SFTP方式连接到VM,无法使用SSH连接到Server。

问题描述:

在Azure或者AWS误操作,禁用了SSH服务,造成不能连接到Server,出现如下警告信息:

This service allows sftp connections only.

尝试过程:

#1、 尝试使用另外的机器通过sftp方式远程连接到这台无法连接的机器,想通过这种方式在修改sshd_config文件。 结果:最终失败

操作过程是:先通过如下命令进行sftp连接,在一台机器上已经连接上了该机器,但是只能使用sftp的linux命令,无法使用ssh中的vim等命令编辑文件。最后sshd_config失败。

sftp mysftp@192.168.0.1

#2、 尝试使用sftp工具连接到这台机器,之后替换sshd_config配置文件。结果:最终失败

操作过程是:首先使用WinSCP连接到这台机器,之后访问路径/etc/ssh,之后尝试编辑sshd_config文件。我尝试了使用WinSCP和使用MobaXterm的sftp工具,都可以连接到这台机器,也都可以访问到/etc/ssh,但是无法进行编辑sshd_config文件,都提示:Permission denied。并且期间尝试使用已root权限的方式(sudo)连接,均已失败。

#3、 尝试使用Azure portal中的RDP进行远程连接。结果:最终失败

在Azure Portal中依次进入到Virtual machines,找到该机器,之后点击左侧菜单Connect,找到RDP页面,点击下载RDP文件,下载后的RDP文件点击连击。

#4、 尝试使用Azure portal中的跳板机Bastion进行远程连接。结果:最终失败

操作步骤同上述#3,进入到Connect菜单后找到Bastion后,点击Use Bastion按钮,进行登陆,但是在跳板机窗口中进行连接的时候依然提示:This service allows sftp connections only. 错误,无法连接。

#5、 尝试使用Azure 虚拟机的 root用户进行登陆或者sftp登陆替换文件操作。结果:最终失败

很遗憾Azure默认不会开启root用户给使用者,在操作之前也没有进行root的设定,查找了相关资料,都是默认没有开启root账号,需要人为设置root用户及密码。因为没有root用户,这个尝试最终失败。

操作到这里的时候,心里凉凉了一半,感觉已经无力回天了,基本只剩下了,给Azure客服打电话,尝试重置虚拟机,或者新建一台虚拟机操作了。

#6、 尝试给Azure客服打电话 / 或者起工单。未成功

官方网站找到客服电话:400-886-6134,手机拨打的时候已经是晚上8点以后,超过客服服务时间,心里更将凉了。工单没有起,参照以前的经验,如果给Azure起工单,会花费非常久的时间后才会答复。

#7、 尝试重新部署虚拟机。结果:最终失败

同样在Azure portal中找到重新部署虚拟机服务,进行重新部署操作,重新部署成功,但是最终连接依然失败。因为Azure的重新部署服务会保留机器的配置和资源,这样你更改过的sshd_config文件并没有经过重新部署而重置更新。

#8、 重新创建新的虚拟机,在移动出来里面的数据。可行,未操作

多次尝试失败后,想到了最差的方式来处理,那就是重新创建虚拟机。

大致的步骤是 step1:剥离出可插拔的硬盘disk。step2:备份出OS盘符下的有用数据。step3:删除既有的虚拟机(释放出当前endpoint的ip)。step4:创建新的虚拟机,并且关联原有endpoint的ip和可插拔的硬盘disk。step5:启动新虚拟机,进行mount挂载硬盘。

首先此种方法是可行的,在之前有这样操作过,但是该过程影响较多,需要和team内进行沟通,评估影响,并且需要得到相关lead的approval。

#9、 使用Azure的 Serial console操作。结果:成功

在即将放弃的时候,找到了Azure 虚拟机里面的一个服务:Serial console,如下图,进入到后会提示输入用户名和密码,进入后和SSH连接vm几乎一模一样,最终使用vm重新设置sshd_config后成功开启SSH连接。

#10、 使用Azure的系统备份进行还原。结果:可行,未操作

这个其实是我最早想到的方式,但是打开Azure portal后发现该虚拟机未开启自动备份功能,压根就没进行备份,非常之悲剧,所以这个在这次事件中未操作成功。但是如果你的机器有自动备份,那么可以利用恢复解决。

最后总结:经历了这次的惊心事件后,自己非常反思了这件事情,还好Azure有自己的一个连接工具方式(第#9种),让你可以连接到VM里面,如果没有那么将要耗费精力来进行恢复。新的Azure机器一定要开启备份,建议在做一些有风险的操作的之前进行备份一次,出现问题可以还原回去。另外关于Azure的VM,可以考虑开启root用户。

如果是AWS的EC2遇到了同样的问题可以参照:EC2 被鎖住不能使用 SSH 登入 怎麼辦?

:本文原创由 bluetata 发布于https://bluetata.blog.csdn.net/、转载请务必注明出处。

[Azure - VM] 解决办法:无法通过SSH连接VM,解决错误:This service allows sftp connections only.相关推荐

  1. 【ssh连接】解决网络突然断线进程执行中止问题

    [ssh连接]解决网络突然断线进程执行中止问题 会话与进程 解决方案 - tmux 使用Tmux的最简方案 会话与进程 命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简 ...

  2. 虚拟机已经显示了已连接的图标但不能上网的解决办法+虚拟机显示网络连接激活失败

    虚拟机已经显示了已连接的图标但不能上网的解决办法+虚拟机显示网络连接激活失败 问题叙述 解决办法 问题叙述 解决办法 1.https://blog.csdn.net/big_rotor/article ...

  3. 【电脑配置】三、解决ubuntu16.04系统无法连接wifi的错误

    电脑配置之解决ubuntu16.04系统无法连接wifi的错误 目录 电脑配置之解决ubuntu16.04系统无法连接wifi的错误 前言 一.检查内核版本和网卡驱动 二.升级内核 1.手动下载所需内 ...

  4. 微信公众号开发redirect_uri 参数错误 的解决办法,Oauth2授权重定向域名参数错误解决办法

    问题概述 关于这个问题,博主是在进行微信公众号开发过程中获取微信公众号CODE用于下一步验证获取openid和access_token时遇到的, 回调地址: " https://open.w ...

  5. debian 10安装ssh依赖openssh-client版本错误的解决办法及开启ssh远程登录设置

    安装 apt-get install openssh-server出现以下情况: 下列软件包有未满足的依赖关系: openssh-server : 依赖: openssh-client 依赖: ope ...

  6. linux服务器自动断开,解决centos7服务器用ssh连接老是自动断开问题

    最近自己买了个服务器,用ssh连接时一段时间不操作就要重新连接,让人很是麻烦.现在终于解决了,步骤很简单. 登陆服务器后输入 lsb_release -a 可以查看系统版本,此命令适用于所 有的lin ...

  7. ssh连接超时解决方法

    ssh连接超时,主要有以下三种方法来解决: 1.修改server的/etc/ssh/sshd_config,添加下面两个选项: ClientAliveInterval 60 //server每隔60秒 ...

  8. windows event log 错误2 的解决办法(电脑网络连接图标消失的罪魁祸首)

    电脑开机右下角发现网络连接图标消失,电脑无法连接网络,定位问题后发现是前置的windows event log服务未启动导致网络连接无法正常运行 但手动启动windows event log服务时,提 ...

  9. mysql关键字冲突解决办法_mysql 关键字 及关键字冲突解决办法

    关键字 https://www.cnblogs.com/Z-Fanghan/p/6892944.html 现在使用navicat图形界面或者Hibernate做映射生成表的时候,渐渐的会忽视掉关键字这 ...

  10. win7 php乱码,打开网站php出现乱码问题的解决办法nsiserror解决办法win7黑屏解决办法龙之谷报错解决办...

    问题:用浏览器打开写好的php文件,然后发现中文字符显示为问号,网站显示不正常 原因:出现乱码的问题的原因是数据库,浏览器和php文件采用的编码方式不相同 解决办法: 1.浏览器编码方式修改:(以谷歌 ...

最新文章

  1. 360浏览器5兼容模式吗_Vue-cli项目,打包生产模式,部分用户360浏览器极速模式下奔溃...
  2. Node.js链式回调
  3. go语言学习笔记(2)命令源码文件
  4. 这个宝藏工具,会给你一种黑客般的感觉
  5. mysql 单数据库设置编码,mysql数据库编码设置
  6. 如何将div与页面的中间(水平/宽度)对齐[重复]
  7. html页面转pdf
  8. 2018 Multi-University Training Contest 1
  9. 从零开始--系统深入学习IOS(使用Swift---带链接)
  10. Ubuntu 20.10 wine、微信、QQ安装教程
  11. 【开发工具集】显示设备驱动程序列表——DriverView
  12. 曲师大教务系统服务器,曲阜师范大学掌上教务
  13. HBuilderX运行到手机或模拟器提示没有找到设备
  14. 移动硬盘和电脑内置硬盘使用时的区别
  15. 网易云热歌榜歌名与热评的高频词抓取及词云制作
  16. 蓝牙AOA融合蓝牙信标定位系统的实现
  17. adobe cs5 indesign 不显示文本框_Adobe CS5 InDesign自动添加页码
  18. 宝捷信注塑机PS系列采集方案
  19. 关于新高考中综合素质评价的思考
  20. 【Python打包成exe方法】——已解决导入第三方包无法打包的问题​

热门文章

  1. RocketMQ独孤九剑-总纲
  2. 防摸鱼小软件——鼠标键盘检测器
  3. HDU 5058 So easy (set容器大法好)
  4. shell小脚本--laod博客更新hosts文件[脚本]
  5. Unity简单麻将胡牌算法
  6. 你的离职是为了事业还为了工作??
  7. Unity多人联机框架Mirro学习记录(一)
  8. 团队管理之领导力阅读感悟
  9. VVC快速仿射运动补偿
  10. 【组合数学 】 推广牛顿二项式 ( 牛顿二项式推广 | 推导流程 | 题目解析 )