1. 程式人生 > 實用技巧 >容器搭建sshd服務

容器搭建sshd服務

容器搭建sshd服務

通過外部伺服器訪問docker容器內部,下面以centos使用ssh連線為例:

宿主機

1、準備一個centos映象

  • docker pull centos:7

2、映象容器化

docker run -it --name con_ssh centos:7 bash

容器內

1、容器中安裝sshd

  • yum install passwd openssl openssh-server -y

2、啟動sshd

  • /usr/sbin/sshd -D &

  • 報錯如下:

    [root@ec5a752c0605 /]# /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@ec5a752c0605 ~]# ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
[root@ec5a752c0605 ~]# ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
[root@ec5a752c0605 ~]# ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ''

3、修改 /etc/ssh/sshd_config 配置資訊

  • UsePAM yes 改為 UsePAM no
    • sed -i "s/#UsePrivilegeSeparation.\*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config

修改完後,重新啟動sshd

4、修改root密碼

  • [root@ec5a752c0605 ~]# passwd rot

    輸入密碼

此時可以將該容器打成映象,也可以後續將步驟整理成Dockerfile。

返回到宿主機,使用ssh root@容器ip

容器ip檢視方式:docker inspect 容器名