ssh远程连接docker中linux(ubuntu/centos)


ssh远程连接docker中linux(ubuntu/centos)

https://www.jianshu.com/p/9e4d50ddc57e

centos
docker pull centos:latest 下载centos7镜像
docker run -i -t centos:latest /bin/bash运行下载好的centos7镜像
yum install passwd openssl openssh-server -y
启动sshd:
/usr/sbin/sshd -D
这时报以下错误:


[root@ b5926410fe60 /]# /usr/sbin/sshd
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key

执行以下命令解决:

[root@b5926410fe60 /]# ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
[root@b5926410fe60 /]# ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
[root@b5926410fe60 /]# ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ''

然后,修改 /etc/ssh/sshd_config 配置信息:

将端口22的注释去掉、permitrootlogin yes打开、protocol 2打开
UsePAM yes 改为 UsePAM no
UsePrivilegeSeparation sandbox 改为 UsePrivilegeSeparation no
接着执行


[root@b5926410fe60 /]# sed -i "s/#UsePrivilegeSeparation./UsePrivilegeSeparation no/g" /etc/ssh/sshd_config
[root@b5926410fe60 /]# sed -i "s/UsePAM./UsePAM no/g" /etc/ssh/sshd_config

修改完后,重新启动sshd
/usr/sbin/sshd -D
修改容器中的密码
通过passwd命令
通过上述操作,再将此时容器保存为镜像
docker commit b5926410fe60 centos7-ssh
删除之前的容器
基于新镜像运行容器
docker run -d -p 10022:22 centos7-ssh:latest /usr/sbin/sshd -D

从远程连接
ssh root@宿主机ip -p 10022

到此为止,成功。

ubuntu
ubuntu操作类似,参考

参考资料
centos

优质内容筛选与推荐>>
1、vue 判断移动端、pc端
2、Sequence (矩阵快速幂+快速幂+费马小定理)
3、cocos2dx下的A星算法
4、T105331 【模板】普通平衡树(Treap)
5、刷iPAQ为Linux(zz Hi-PDA)


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号