ubuntu 配置ssh(docker)


一、docker配置ssh

1、主要設置

#設置登錄密碼
apt-get install passwd
passwd
#安裝ssh
apt-get install openssh-server
#配置 shh:生成 ssh 容器的公鑰、私鑰
#注意:生成過程中需要兩次回車,以進行下一步。
cd /etc/ssh
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t rsa -f /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -t rsa -f /etc/ssh/ssh_host_ed25519_key
#創建允許外部訪問的認知文件
mkdir -p ~/.ssh
> ~/.ssh/authorized_keys
#編寫容器的服務啟動腳步
vim /run.sh #寫入以下內容退出:下面內容不對,無法執行,看三(注意事項)
#!/bin/bash
/usr/sbin/sshd -D
#設置執行權限
chmod +x /run.sh
#退出
exit

2、啟動容器

如果不能啟動,去掉/run.sh,改成/bin/bash,然后手動執行/run.sh中內容

docker ps -a
docker commmit 容器id 新鏡像
docker images
#-p 2222:22 將容器的22端口服務映射到宿主機的 2222 端口上
docker run -d --name 容器名稱 ... -p 2222:22 鏡像名稱 /run.sh  

3、本地ssh連接容器

ssh root@127.0.0.1 -p 2222

4、注意事項

1)將容器commit保存為鏡像,然后再次啟動時,執行/run.sh會失敗。進入容器后,手動執行run.sh中內容,又會報錯,解決方法如下

#報錯如下
root@3f912011817b:/usr/sbin# /usr/sbin/sshd 
Missing privilege separation directory: /run/sshd
#解決方法如下
mkdir /run/sshd
/usr/sbin/sshd 
ps -e | grep ssh
#顯示內容如下
  4137 ?        00:00:00 sshd

2)如果root連接容器,需要修改: vim /etc/ssh/sshd_config

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM