1. 程式人生 > >docker學習之ssh連線

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: 處選擇你的私鑰檔案,然後即可登入了,過程中只需輸入金鑰鎖碼即可。