关于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打出了满意的镜像。
如果对文中内容有疑问,欢迎留言~