Docker容器實(shí)現(xiàn)SSH遠(yuǎn)程直連
在某些特殊需求下,我們想ssh直接遠(yuǎn)程連接docker 容器,下面我們介紹結(jié)合cpolar工具實(shí)現(xiàn)ssh遠(yuǎn)程直接連接docker容器
1. 下載docker鏡像
本文下載一個(gè)tomcat鏡像為例子,輸入命令拉取tomcat鏡像:
docker pull tomcat
我們下載的是tomcat鏡像,tomcat端口容器內(nèi)部默認(rèn)是8080,我們把tomcat容器內(nèi)部端口映射到宿主機(jī)的8088端口上,運(yùn)行鏡像容器,
docker run -it -d -p8088:8080 tomcat /bin/bash
運(yùn)行后查看一下正在運(yùn)行的容器
docker ps -a
可以看到已經(jīng)運(yùn)行了,同時(shí)也看到了容器ID
2. 安裝ssh服務(wù)
進(jìn)入容器
docker exec -it 容器ID /bin/bash
進(jìn)入容器后,我們安裝ssh服務(wù),首先更新包管理器
apt-get update
安裝ssh服務(wù)
apt-get install openssh-server
安裝文件編輯器 vim
apt-get install vim
設(shè)置SSH登錄密碼,第一次是設(shè)置密碼,第二次是確認(rèn)密碼,輸入兩次
passwd
修改配置文件
vim /etc/ssh/sshd_config
需要修改兩個(gè)地方:
第一:把ssh 服務(wù)默認(rèn)的22端口設(shè)置為與容器服務(wù)的端口一致,如我們是tomcat容器,就設(shè)置為8080,因?yàn)槲覀冞\(yùn)行容器的時(shí)候掛載的是內(nèi)部的8080端口映射到宿主機(jī)的8088端口,所以需要和容器內(nèi)部端口保持一致,
第二:將 PermitRootLogin prohibit-password
修改為 PermitRootLogin yes
,開啟使用密碼登錄,設(shè)置完成后保存退出
修改完成后,重啟ssh服務(wù)
service ssh restart
3. 本地局域網(wǎng)測(cè)試
上面我們?cè)O(shè)置完成了在容器內(nèi)部安裝了ssh服務(wù),現(xiàn)在進(jìn)行局域網(wǎng)測(cè)試連接,用戶名默認(rèn)是root,端口號(hào)這里需要輸入我們映射到宿主機(jī)的8088端口
ssh -p 8088 root@192.168.10.125
登錄過程中需要輸入密碼,即上面設(shè)置的密碼,成功后,可以看到我們成功進(jìn)入了容器內(nèi)部
4. 安裝cpolar
安裝cpolar我們?cè)谒拗鳈C(jī)安裝,不需要進(jìn)入容器內(nèi)部安裝
使用一鍵腳本安裝命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
向系統(tǒng)添加服務(wù)
sudo systemctl enable cpolar
啟動(dòng)cpolar服務(wù)
sudo systemctl start cpolar
5. 配置公網(wǎng)訪問地址
成功啟動(dòng)cpolar服務(wù)后,我們?cè)跒g覽器上訪問Linux局域網(wǎng)ip地址+9200端口,登錄cpolar web UI管理界面。
cpolar官網(wǎng)地址: https://www.cpolar.com
登錄成功后,點(diǎn)擊左側(cè)儀表盤的隧道管理——創(chuàng)建隧道:
隧道名稱:可自定義,注意不要與已有的隧道名稱重復(fù)協(xié)議:tcp本地地址:8088域名類型:臨時(shí)隨機(jī)TCP端口地區(qū):選擇China VIP
點(diǎn)擊 創(chuàng)建
然后打開左側(cè)在線隧道列表,查看剛剛創(chuàng)建隧道后生成的tcp連接的公網(wǎng)地址
6. SSH公網(wǎng)遠(yuǎn)程連接測(cè)試
使用ssh 命令行連接模式,注意,-p后面的端口是cpolar中生成的公網(wǎng)地址對(duì)應(yīng)的端口
ssh -p 端口 root@公網(wǎng)地址
執(zhí)行后,我們可以看到成功進(jìn)入容器,這樣ssh 遠(yuǎn)程直接連接docker容器就設(shè)置好了
7.固定連接公網(wǎng)地址
要注意的是,以上步驟使用的是隨機(jī)臨時(shí)tcp端口地址,所生成的公網(wǎng)地址為隨機(jī)臨時(shí)地址,該公網(wǎng)地址24小時(shí)內(nèi)會(huì)隨機(jī)變化。我們接下來為其配置固定的TCP端口地址,該地址不會(huì)變化,設(shè)置后將無需每天重復(fù)修改地址。
配置固定tcp端口地址需要將cpolar升級(jí)到專業(yè)版套餐或以上。
保留一個(gè)固定tcp地址
登錄cpolar官網(wǎng),點(diǎn)擊左側(cè)的預(yù)留,找到保留的tcp地址,我們來為我的世界保留一個(gè)固定tcp地址:
地區(qū):選擇China vip描述:即備注,可自定義
點(diǎn)擊 保留
地址保留成功后,系統(tǒng)會(huì)生成相應(yīng)的固定公網(wǎng)地址,將其復(fù)制下來
打開cpolar web ui管理界面,點(diǎn)擊左側(cè)儀表盤的隧道管理——隧道列表,找到我們上面創(chuàng)建的TCP隧道,點(diǎn)擊右側(cè)的 編輯
修改隧道信息,將保留成功的固定tcp地址配置到隧道中
端口類型:修改為固定tcp端口預(yù)留的tcp地址:填寫官網(wǎng)保留成功的地址,
點(diǎn)擊 更新
隧道更新成功后,點(diǎn)擊左側(cè)儀表盤的狀態(tài)——在線隧道列表,可以看到公網(wǎng)地址已經(jīng)更新成為了固定tcp地址。
8. SSH固定地址連接測(cè)試
輸入ssh 連接命令,使用我們上面的公網(wǎng)地址和端口,我們可以看到,連接成功,固定ssh遠(yuǎn)程直接連接docker容器就設(shè)置好了
到此這篇關(guān)于Docker容器實(shí)現(xiàn)SSH遠(yuǎn)程直連的文章就介紹到這了,更多相關(guān)Docker SSH遠(yuǎn)程直連內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker使用Jumpserver搭建一個(gè)安全的堡壘機(jī)系統(tǒng)
堡壘機(jī)作為一種重要的安全工具,能夠有效地管理服務(wù)器訪問權(quán)限,并提供會(huì)話審計(jì)功能,以保障系統(tǒng)的安全性和穩(wěn)定性,本文將介紹Jumpserver,并指導(dǎo)如何搭建和配置Jumpserver來實(shí)現(xiàn)安全的堡壘機(jī)管理,需要的朋友可以參考下2025-04-04在CentOS啟動(dòng)時(shí)自動(dòng)加載內(nèi)核模塊overlayfs操作
這篇文章主要介紹了在CentOS啟動(dòng)時(shí)自動(dòng)加載內(nèi)核模塊overlayfs操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)
本文主要介紹了使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08關(guān)于docker啟動(dòng)jenkins環(huán)境的問題
這篇文章主要介紹了docker啟動(dòng)jenkins環(huán)境的問題,文中提到了jenkins基本工作原理及管理員密碼獲取方法,對(duì)docker啟動(dòng)jenkins環(huán)境相關(guān)知識(shí)感興趣的朋友一起看看吧2022-04-04Docker?部署?Minio?對(duì)象存儲(chǔ)服務(wù)器的過程詳解
Minio是一個(gè)輕量級(jí)的應(yīng)用程序,可以在各種環(huán)境中運(yùn)行,包括公共云、私有云和混合云,這篇文章主要介紹了Docker?部署?Minio?對(duì)象存儲(chǔ)服務(wù)器的過程詳解,需要的朋友可以參考下2024-07-07Docker安裝方法與Docker四種網(wǎng)絡(luò)模式詳解
今天小編就為大家分享一篇關(guān)于Docker安裝方法與Docker四種網(wǎng)絡(luò)模式的詳解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-09-09Docker容器輸入漢字觸發(fā)自動(dòng)補(bǔ)全問題
Linux系統(tǒng)中,當(dāng)終端出現(xiàn)中文亂碼通常是由于缺少中文字符集和字體,安裝中文字體和設(shè)置合適的字符集zh_CN.utf8,可以有效解決這一問題,首先,通過查看系統(tǒng)支持的字符集了解是否支持中文,然后安裝相應(yīng)字符集,其次,查看并設(shè)置當(dāng)前系統(tǒng)字符集2024-10-10