关于ubuntu开启ssh连接后密码被拒绝

首先需要安装ssh,这个我就不多说了。但是装好后我启动容器还是无法连接上ubuntu容器服务。这是什么原因呢?
系统的提示是密码被拒绝,我想起我没有设置Ubuntu的登陆密码,所以登陆密码是随机生成的,难怪登陆不了。于是我设置了ubuntu登陆密码,命令如下:

passwd root

然后会要你输入两次密码,输入一致就修改成功了(注意得是root权限)。退出后访问容器,还是密码被拒绝。。。。
这下我就不知道怎么回事了,几番检查、搜索,最后想起来会不会是ssh没有开启root账户远程允许访问?

vim /etc/ssh/sshd_config

一看,果然没打开,把PermitRootLogin prohibit-password修改为
PermitRootLogin yes,保存退出,重启ssh服务

service ssh restart

然后再访问,ok没问题了。
--------------------------分割线-------------------------------------
但是我的事情到这里并没有结束,由于我需要得到一个运行起来就已经配置好这些的镜像,所以得修改dockerfile文件,在文件中以脚本的形式进行刚才的操作。
如何通过脚本修改密码呢?

echo root:password|chpasswd

就是这句了,将root的密码设置为password,这里password可以用引号括起来也可以不用,大家可以修改这句命令来修改自己的密码。
修改密码的问题解决了,如何修改配置文件呢?
linux修改文件内容有一个命令,sed。
通过这个命令,我们就能够实现我们的需求

sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config

-i表示在当前文件进行修改,单引号里面是被替换文本和替换文本,最后跟文件路径,想了解更多细节可以在网上百度sed命令。
到这里,我的目标就全部实现了,通过修改后的dockerfile打出了满意的镜像。
如果对文中内容有疑问,欢迎留言~

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ubuntu版本是Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-66-generic x...
    huangzhihao阅读 14,196评论 0 2
  • 一、前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件等等。如果我们相对这些文件进行一些...
    以七v为书阅读 1,549评论 0 5
  • 一、实验背景 客户请第三方安全公司扫描了下他们的服务器,发现 SSH 存在许多安全漏洞,原因是 CentOS 7....
    放纵不基阅读 4,615评论 0 2
  • 本来想想ssh连接linux没有很复杂,但是多次扮演“技术支持”的角色之后发现原来里面还是有不少坑的。这篇文章目的...
    cracker_zhou阅读 1,681评论 0 0
  • 第 2 章 SHELL 基础知识2.1 shell脚本我们在上面简单介绍了一下什么是shell脚本,现在我们来进一...
    LiWei_9e4b阅读 1,593评论 0 0