在docker上搭建ssh


  參考資料:

  https://www.jianshu.com/p/c4d4ee6f3663

  https://blog.csdn.net/yalishadaa/article/details/69949022

  https://blog.csdn.net/m0_37961948/article/details/77894307

  寫這篇文章的動機如下:我拉了一個docker,但是每次都從宿主機登錄到docker看起來十分麻煩。於是我想先做一個端口映射,然后直接通過一個公網的IP加端口登錄到docker中!下面是我的做法。

  1. 首先當然要拉一個docker,並且要做一個端口映射。ssh的默認端口是22,所以我們可以選擇一個宿主機的端口XX,和docker容器的22號端口作一個映射。這樣訪問宿主機的XX端口時,訪問的就是docker的22號端口。

  2. 完成第一步之后需要在docker里面安裝ssh服務。這時我們需要安裝openssh-server這個軟件。

apt-get update    # 可選,更新apt-get的源
apt-get install openssh-server

  安裝完成后使用 service ssh start 命令打開ssh服務。會顯示下面字樣:

   * Starting OpenBSD Secure Shell server sshd                                                       [ OK ]

  3. 完成第2步之后,我們就可以嘗試使用ssh登陸宿主機的XX端口了,第一次登陸需要將主機添加到信任host里面,但是!它會問你密碼?這個密碼是啥呢?我登錄也沒用密碼啊。別急,還需要下面幾個操作。

  1)使用passwd命令設置登陸密碼

  2)vim /etc/ssh/sshd_config

  將PermitRootLogin的值改為yes

  3)vim /etc/ssh/sshd_config

  將PasswordAuthentication的值改為yes

  完成以上三步之后 service restart ssh重啟ssh服務,再次登陸!是不是可以啦!


 

  之前寫了這個使用密碼登錄容器內ssh的方法,下面再介紹一下如何使用公私鑰認證的方法登錄容器。

  參考資料:

  https://blog.csdn.net/li528405176/article/details/82810342

  https://www.runoob.com/w3cnote/set-ssh-login-key.html

  首先是生成公私鑰對,這個過程在客戶端上進行:

ssh-keygen -t rsa

  生成的公鑰會放在~/.ssh/id_rsa.pub

  這個公鑰我們需要上傳到服務器,cat到服務器的~/.ssh/authorized_keys

[root@host .ssh]$ cat id_rsa.pub >> authorized_keys

  然后就是ssh的配置了:

1 編輯 /etc/ssh/sshd_config 文件,進行如下設置:

RSAAuthentication yes PubkeyAuthentication yes

2 另外,請留意 root 用戶能否通過 SSH 登錄:

PermitRootLogin yes

3 當你完成全部設置,並以密鑰方式登錄成功后,再禁用密碼登錄:

PasswordAuthentication no

4 最后,重啟 SSH 服務:

[root@host .ssh]$ service sshd restart


免責聲明!

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



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