因公司只有某幾台機器可以對外pull docker image
故學會了如何將image丟至內網的其他電腦
首先將image包成 .tar檔
$ docker save blazingdb/blazingsql > blazingsql.tar
先scp到內部電腦
再執行docker load指令
$ docker load -i blazingsql.tar
接著在內部電腦即可查到該image
而scp對我來說才是一個問題
印象中可以不用輸入密碼就可以將檔案搬到其他主機
但是要設定SSH金鑰才行....
複習一下前陣子才終於認真看的鳥哥
- 伺服器建立公鑰檔: 每一次啟動 sshd 服務時,該服務會主動去找 /etc/ssh/ssh_host* 的檔案,若系統剛剛安裝完成時,由於沒有這些公鑰檔案,因此 sshd 會主動去計算出這些需要的公鑰檔案,同時也會計算出伺服器自己需要的私鑰檔;
- 用戶端主動連線要求: 若用戶端想要連線到 ssh 伺服器,則需要使用適當的用戶端程式來連線,包括 ssh, pietty 等用戶端程式;
- 伺服器傳送公鑰檔給用戶端: 接收到用戶端的要求後,伺服器便將第一個步驟取得的公鑰檔案傳送給用戶端使用 (此時應是明碼傳送,反正公鑰本來就是給大家使用的!);
- 用戶端記錄/比對伺服器的公鑰資料及隨機計算自己的公私鑰: 若用戶端第一次連接到此伺服器,則會將伺服器的公鑰資料記錄到用戶端的使用者家目錄內的 ~/.ssh/known_hosts 。若是已經記錄過該伺服器的公鑰資料,則用戶端會去比對此次接收到的與之前的記錄是否有差異。若接受此公鑰資料, 則開始計算用戶端自己的公私鑰資料;
- 回傳用戶端的公鑰資料到伺服器端: 用戶將自己的公鑰傳送給伺服器。此時伺服器:『具有伺服器的私鑰與用戶端的公鑰』,而用戶端則是: 『具有伺服器的公鑰以及用戶端自己的私鑰』,你會看到,在此次連線的伺服器與用戶端的金鑰系統 (公鑰+私鑰) 並不一樣,所以才稱為非對稱式金鑰系統喔。
- 開始雙向加解密: (1)伺服器到用戶端:伺服器傳送資料時,拿用戶的公鑰加密後送出。用戶端接收後,用自己的私鑰解密; (2)用戶端到伺服器:用戶端傳送資料時,拿伺服器的公鑰加密後送出。伺服器接收後,用伺服器的私鑰解密。
大意就是每台主機會有自己產生的金鑰+server發的公鑰來達成連線
先產生公私鑰
$ ssh-keygen
會詢問3個問題, 預設即可
- Enter file in which to save the key - 輸入金鑰的檔案路徑及名稱,預設是 ~/.ssh/id_rsa。
- Enter passphrase - 輸入自訂密碼。
- Enter same passphrase again - 再輸入一次自訂密碼。
此時會多了id_rsa和id_rsa.pub兩個檔案
接下來複製到主機的家目錄暫時存放
$ scp ~/.ssh/id_rsa.pub USER@SSH_SERVER:~
USER@SSH_SERVER -> server的使用者@server ip
server的使用者也是未來不想打密碼的帳號
再來到server中設定將家目錄底下的.ssh目錄設定為本人才可讀寫
$ chmod 700 ~/.ssh
將複製過來的公鑰匯入授權清單
$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
同樣須把authorized_keys權限設定為本人才可讀寫
$ chmod 600 ~/.ssh/authorized_keys
之後連線到這台server都不用打密碼啦~
http://blog.itist.tw/2015/03/login-ssh-server-without-username-and-password.html