docker學習之ssh連線
1. 下載ubuntu映象 因為從docker hub上下載的映象apt-get update報錯, 所以就直接從網易蜂巢上下載已經裝好各種工具的ubuntu映象了。
docker pull hub.c.163.com/public/ubuntu:16.04-tools
2. 啟動映象
docker run -itd -p 10022:22 1196ea15dad6
將本機10022埠,對映到容器的22埠。
3. 進入容器修改ssh配置,並啟動ssh 進入容器
docker exec -it 7c07ba426a27 /bin/bash
給root設定一個密碼 123456
passwd root
修改配置檔案
vim /etc/ssh/sshd_config
註釋第一行,新增第二行
# PermitRootLogin prohibit-password.
PermitRootLogin yes
儲存退出後,重啟ssh服務
/etc/init.d/ssh restart
4. 本機ssh連線容器 ssh [email protected] -p 10022 輸入密碼後就登入進去了。
5 可使用xshell 連線
5.1 製作金鑰對
首先在伺服器上製作金鑰對。首先用密碼登入到你打算使用金鑰登入的賬戶,然後執行以下命令:
[[email protected] ~]$ ssh-keygen <== 建立金鑰對
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): <== 按 Enter
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): <== 輸入金鑰鎖碼,或直接按 Enter 留空
Enter same passphrase again: <== 再輸入一遍金鑰鎖碼
Your identification has been saved in /root/.ssh/id_rsa. <== 私鑰
Your public key has been saved in /root/.ssh/id_rsa.pub. <== 公鑰
The key fingerprint is:
0f:d3:e7:1a:1c:bd:5c:03:f1:19:f1:22:df:9b:cc:08 [email protected]
金鑰鎖碼在使用私鑰時必須輸入,這樣就可以保護私鑰不被盜用。當然,也可以留空,實現無密碼登入。
現在,在 root 使用者的家目錄中生成了一個 .ssh 的隱藏目錄,內含兩個金鑰檔案。id_rsa 為私鑰,id_rsa.pub 為公鑰。
5.2. 在伺服器上安裝公鑰
鍵入以下命令,在伺服器上安裝公鑰:
[[email protected] ~]$ cd .ssh [[email protected] .ssh]$ cat id_rsa.pub >> authorized_keys
如此便完成了公鑰的安裝。為了確保連線成功,請保證以下檔案許可權正確:
[[email protected] .ssh]$ chmod 600 authorized_keys [[email protected] .ssh]$ chmod 700 ~/.ssh
5.3. 設定 SSH,開啟金鑰登入功能(按照上面的可以不驗證了)
驗證 /etc/ssh/sshd_config 檔案,進行如下設定:
RSAAuthentication yes PubkeyAuthentication yes
另外,請留意 root 使用者能否通過 SSH 登入:
PermitRootLogin yes
當你完成全部設定,並以金鑰方式登入成功後,再禁用密碼登入:
PasswordAuthentication no
如果修改檔案必須重啟 ssh
4. 將私鑰下載到客戶端,然後轉換為 PuTTY 能使用的格式
使用 WinSCP、SFTP 等工具將私鑰檔案 id_rsa 下載到客戶端機器上。然後開啟 PuTTYGen,單擊 Actions 中的 Load 按鈕,載入你剛才下載到的私鑰檔案。如果你剛才設定了金鑰鎖碼,這時則需要輸入。
載入成功後,PuTTYGen 會顯示金鑰相關的資訊。在 Key comment 中鍵入對金鑰的說明資訊,然後單擊 Save private key 按鈕即可將私鑰檔案存放為 PuTTY 能使用的格式。
今後,當你使用 PuTTY 登入時,可以在左側的 Connection -> SSH -> Auth 中的 Private key file for authentication: 處選擇你的私鑰檔案,然後即可登入了,過程中只需輸入金鑰鎖碼即可。