OpenShift最為彈性的地方就是SSH權限,不過在取得SSH權限之前,大家最想要的還是FTP權限,可是在後台並沒有看到相關的連線資訊或是啟用方式,該怎麼做?事實上要使用OpenShift的FTP,你必須透過所謂的SSH來進行,可是這東西對大多數使用者來說是一個陌生的東西,該如何用最簡單的方式、圖像化的方式來取得FTP使用呢?別怕,交給PuTTYgen和FileZilla就可解決。
想要使用OpenShift,首先我們必須使用PuTTYgen來產生RSA的公鑰和私鑰,接著將公鑰設定到OpenShift系統後台,接著私鑰存放在本機電腦,緊接著開啟你的FileZilla軟體,將RSA私鑰匯入進去,並且設定一個新連線,輸入好位置與使用者帳號,並選擇透過SFTP的方式+交談式介面,就可以輕鬆連上FTP做檔案存取了,不過過程中麻煩的是產生RSA金鑰。
OpenShift 系列教學
一、申請免費空間、安裝WordPress
二、管理MySQL資料庫,自動安裝phpMyAdmin
三、取得FTP,透過FileZilla使用sftp連線管理
四、升級 WordPress 為正體中文化版
接續前一篇的phpMyAdmin,當你取得資料庫可以控管後,那程式原始碼呢?該怎麼控管?OpenShift預設是讓我們透過SSH進行指令界面的操作與設定,不過多數使用者還是習慣使用圖像式介面來來取代指令介面,所以如同前面提到,我們可以透過FileZilla內建的SFTP功能,來進行SSH的FTP連線,但前提是我們要先產生好所謂的RSA金鑰(公鑰+私鑰)。這是一個複雜的演算法,有興趣可以上網自行查詢,不過在此我們僅需知道如何產生並使用即可。
要產生RSA金鑰,我們可以利用免費軟體PuTTY Key Generator 這軟體來幫我們產生RSA的公鑰與私鑰,不過這邊比較容易遇到狀況是金鑰部分複製錯誤,導致無法正確連線。香腸在這邊大該摸索了兩三小時才找到原因,不然過程中還遇到「Disconnected: No supported authentication methods available (server sent: publickey,gssapi-keyex,gssapi-with-mic)」這一類的錯誤,看上去網路上都沒有人回答,但經過自己實際操作,僅單純公鑰和私鑰對應不上而已,重新產生並貼上即可解決問題。
一、使用PuTTYgen產生RSA金鑰(公鑰+私鑰)
第1步 首先你必須下載PuTTy Key Generator,啟動軟體後請選【SSH-2 RSA】,右下角可以輸入「2048」,最後點選﹝Generate﹞。
第2步 但請注意,當你點選產生金鑰後,滑鼠請在綠色跑條下方區塊作滑動,因為他會偵測你的滑鼠位置當成變數/參數,進行雜湊加密計算,所以當你滑鼠不移動/滑動,跑條也不會跑,金鑰就不會產生了。
第3步 當產生完畢後,請先複製上方區塊內的公鑰,然後別忘記點選下方【Save Private key】進行私鑰的儲存。
第4步 請在電腦內找個地方儲存好,以後FTP連線都會用到,檔案名稱可以儲存「private」,副檔名請使用「.ppk」。
第5步 儲存好後,就是一個「private.ppk」檔案了。
第6步 這時請回到OpenShift網站上,點選左上角的「Applications」進入你之前建立的空間,然後找到右側的「add an SSH public key to your account」。
第7步 請在「key name」輸入金鑰名稱,可以自訂,建議使用英文。下方的區塊,請貼上剛剛第3步驟我們所複製的公鑰。這串公鑰的開頭會是「ssh-rsa」,如果不是可能就有弄錯了。輸入完畢請點選﹝Create﹞。
第8步 當公鑰輸入成功後。會顯示「Yout public key has been created」告知你公鑰已經建立完成,在下方也可以看到目前新增的公鑰。
第9步 再次回到空間管理介面,這回請點選下右側下方的「Want to log in to your application?」。
第10步 這時候會顯示出一個框框,開頭會是「SSH」後面會帶一長串,這就是SSH的登錄連線資訊了!整串連線資訊如:「ssh [email protected]」。請先將這串紀錄儲存好。
二、利用FileZilla進行SFTP連線
取得RSA金鑰並將它們匯入到OpenShift之後,接下來我們要利用私鑰並搭配FileZilla進行FTP連線取得原始檔案,作法很簡單,請先下載安裝好FileZilla並啟動。
第1步 啟動FileZilla後,點選上方【編輯】→【設定】。
第2步 接著會談出設定視窗,請點選左方「連線」→「SFTP」,然後點選﹝加入金鑰檔案﹞。
第3步 找到剛剛我們儲存下來的RSA私鑰檔案「private.ppk」,選取使用。
第4步 加入成功後,會在FileZilla內顯示這個私鑰,請點選﹝確認﹞。
第5步 接著請點選左上角【檔案】→【站台管理員】。
第6步 這時會跳出站台管理員,請點左側﹝新增站台﹞,右側部分請切換到「一般設定」。還記得前面我們複製到一串SSH相關的字串嗎?請按照下方說明,輸入完成請點﹝連線﹞。
大概長這樣:「ssh 657a8021a0c8de1234500013@app-your.rhcloud.com」。
- 主機:app-your.rhcloud.com
- 連接埠:22 (預設可不填,若連不上可以嘗試填寫22)
- 協定:SFTP – SSH File Transfer Protocol
- 登入型式:交談式
- 使用者:657a8021a0c8de1234500013
第7步 這時候密碼部分他會去抓取你設定到FileZilla內的私鑰,第一次連線會要確認是否將此金鑰加入快取,你可以勾選加入或是直接按﹝確認﹞繼續。
第8步 沒錯,很快地就讓我們連上FTP了,是不是很簡單呢?
當連上FTP之後,我們可以做很多事情,下一篇我們將教大家如何修改WordPress語系,讓他變成完整的正體中文介面,讓你可以更快更好上手OpenShift免費空間!
我私鑰是儲存在 C:qm_sell_ftp_RSA_private_key.ppk
一樣會錯誤, 為什麼?
錯誤: Disconnected: No supported authentication methods available (server sent: publickey,gssapi-keyex,gssapi-with-mic)
太棒的教學了~~~謝謝你!得要在短短的幾天內從0架起一個網站,但自己對這種東西完全不了解,依照這個詳細的教學照做的話連白痴都弄得起來!!謝謝你!!
或許可以在內文提示一下讀者,private key得要存在電腦內路徑名稱裡「只有英文字元」的路徑裡(如下方討論內容內所提到),不然就可能會遇到”Disconnected: No supported authentication methods available”無法連線的錯誤訊息
謝謝你
謝謝你們分享,不過PuTTYgen似乎Mac不支援?
有點頭痛
Mac 我就沒辦法了,非MAC用戶
哈哈哈哈哈好的,謝謝你Q_Q
打開Mac的終端機,然後輸入ssh-keygen -t rsa
接著命名後系統會幫您儲存檔案, for example:
Enter file in which to save the key (/Users/LaiHal/.ssh/id_rsa): id_rsa
Enter passphrase (empty for no passphrase): (空白)
Enter same passphrase again: (空白)
Your identification has been saved in id_rsa.
Your public key has been saved in id_rsa.pub.
就可以繼續按照版大方式了完成程序了
請問若把金鑰變更位置是否FoleZilla就會連結不到呢?
應該會哦~~
那是否換了位置,金鑰必須重新設定呢?
還有另外我wordpress的版本一直是英文版的 在 wp-config 修改define (‘WPLANG’, ‘zh_tw’);
這個檔案還是沒變捏
openshift 只有提供CNAME 綁定我們的空間,可是假如我註冊了一個 aaa.com的網域,我沒辦法直接將aaa.com綁定到我的 Openshift 網站,還得另外新增一個子網域(ex:www.aaa.com)才有辦法綁定到Openshift 的空間。
一直以來我都是使用Cloudns(http://www.cloudns.net)所提供的網頁轉址服務讓我的網站可以從 aaa.com 轉址至 http://www.aaa.com,但是我還是有點不滿這樣的做法,如何不要透過轉址,直接讓 aaa.com 連到我openshift的空間?
又若Openshift 無法直接與aaa.com做綁定,那我想要將我的dns代管移到cloudflare(無法設定轉址功能了),還有什麼替代方案可以使 aaa.com 轉址到 http://www.aaa.com?
我很久沒研究openshift了XDD
請問…PuTTy Key Generator有沒有mac版的呢?囧…
這我不知道耶,我沒有MAC QQ
謝謝香腸大大,看樣子小弟得找台windows才能繼續進行了Q”Q
或是找找有沒有線上版的產生工具
感謝香腸大,我用windows把上述的都設定好了,但是也是卡在無法登入伺服器的部份,我的金鑰儲存路徑是 “C:UsersAdministratorDocumentsOpenShift Keyprivate.ppk”,不曉得有沒有問題呢?謝謝QQ
sorry,已經成功連上囉~XD
恭喜 :)
真的很棒的教學,非常感謝
感謝香腸超級詳實的步驟解說
正當我好開心的覺得快要完成的時候
最後一個步驟進不去
一直無法順利連線 顯示
錯誤: Disconnected: No supported authentication methods available (server sent: publickey,gssapi-keyex,gssapi-with-mic)
錯誤: 無法連線到伺服器
好痛苦啊~~~金鑰已經重設三次了~~太痛苦了
好想完成喔!
記得金鑰儲存路徑不要有英文,更別存在桌面。應該可解決~~~
請問版主myAdmin匯好了以後要去改Connections嗎?文件管理器在哪裡?
網頁只有顯示出靜態頁面??
另外如果有PHP寄信功能要怎樣作後台設定設定?才可使網頁寄出信
謝謝
Connections 不用動吧!?
PHP寄信,預設已有 smtp 了。
問題一我已經解決了!真的很感謝版主詳盡的圖文解說(感恩)
但是mail()函式寄信功能應怎樣處理?
需在啟動擴充模組或是在網頁當中做設定
第一次做不清楚
ISP業者(smtp)可以填寫gmail嗎?還是只能填HInet或So-net等實體公司
可以填國內業者嗎?還是依空間所指定?要怎麼設定?
新手初學者,請多包涵!!
謝謝~
寄信部分你可能要額外查詢資料了,因為有很多種方式可以進行,但我很少用這塊地東西。 可Google看看「phpMailer 」。
我只有簡略測試過這個: http://sofree.cc/php-smtp-mail/
OpenShift可以正常使用mail()函數哦! 只不過寄件者會變成[email protected]然而, 因為OpenShift為了能夠正常傳送電郵不會被當成垃圾郵件伺服器所以自己設立了一個Mail Relay來傳送電郵
那么,有何方法可以自定邮件地址呢
我把 key 放在 u盘 里,但不小心用 usb format 删除了 求解。。。
重新產生一次,就可以了!
哦,谢谢 :)
不會
您好 感謝寫這系列的問題
有一個小地方 我卡住了 就是 文章設定FTP那邊沒有說要設定22port 我沒打會變成80
說不定有人也會卡在這裡 如果方便的話 加上22 的說明 會比較好
謝謝
OK~
不過我記得只要切成SFTP,都會自動轉跳為22~~ 既然有遇到,就標記一下 :)
感謝教學!下一篇下一篇~~~ (敲碗)
來了~~
http://sofree.cc/openshift-tech-4/
請問要把網頁檔案放在這FTP的哪兒呢?
app-root/repo/runtime
請問,為什麼我在FTP內只有/app-root/runtime/repo ?
你下一層沒有PHP這層嗎?
我測試過後路徑應該是: app-root → runtime → repo → php
請問我全按照教學走,最後FTP怎麼會一直寫無法連線到伺服器?
阿阿原來是路徑私鑰的儲存路徑,資料夾不可以是中文XoX
謝謝無私教學,先期待下一篇教學,屆時再繼續操作囉!
謝謝你的經驗分享,下一篇是WP中文化,已經發表
http://sofree.cc/openshift-tech-4/
我是一個完全門外漢,第一次架設網站,我的問題跟secret一樣,一直出現
指令:
keyfile “C:Documents and SettingsAdministrator桌面private.ppk”
指令: open
“[email protected]” 22
指令: 信任新的主機金鑰: 一次
錯誤:
Disconnected: No supported authentication methods available (server sent:
publickey,gssapi-keyex,gssapi-with-mic)
錯誤: 無法連線到伺服器
請問WinSCP是甚麼,可否指點後輩如何安裝使用,否則WORDPRESS只裝半套,拜託前輩們賜教。
WinSCP 算是把SSH圖像化: http://download.sofree.cc/winscp.html
你也可以自行研究看看可否透過她處理囉~
你的問題我也遇過(本文上方有提到),單純是你金鑰部分未設定好,
可能您需要再看仔細一點教學,才會自己找到問題所在。
另外網友 @belenuslele:disqus 也有提到,很可能是你金鑰位置是中文路徑,所以無法正確使用。
我自己在這部分也卡很久,後來慢慢摸才找到 :P
一直顯示Disconnected: No supported authentication methods available (server sent: publickey,gssapi-keyex,gssapi-with-mic),不過改用WinSCP就可以用了…
用WinSCP也是一個替代囉! ^^
git真是有夠複雜的,用這個SFTP一直連不上,一直出現那個錯誤訊息=___=
你是用git後SFTP出錯?
還是?
香腸其實你應該使用Git作檔案傳輸才對啊!這個是OpenShift當初的設計來的……(為什麼人們都不用Git?)
因為git很複雜,老實說我還不會XDD
我就是一個研究Git很久還是看不懂的,Git真的很複雜啊…..
我還是霧煞煞……
我比較傾向直接用git就可以了XD
有難度(攤手)
也是,雖然很多軟體後端都是git,但是終究比較傾向程式設計師以上&專案負責人等等的群眾
不過openshift的複雜度感覺上也沒有準備給一般人使用就是了XD
是阿,openshift預設就是給進階使用者使用,他還是希望大家用git
不過那真有點複雜,我還要再學習看看Orz…..