發表文章

目前顯示的是 2017的文章

如何在 Chromebook 當中移除 SSH 的 Know_Host Fingerprints

最近買了一台 Chromebook,想試試看自己可不可能利用 chromebook 來處理日常生活的所有工作,當然電動不包含在內。目前看起來使用似乎沒有問題,何況也逐漸支援 android app,可以做的事情應該是越來越多了。 今天要記錄的是如何移除 SSH 連線的 Known Host Fingerprint。當已知客戶端的 fingerprint 遭到變更時,會出現下面的訊息: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the ECDSA key sent by the remote host is d6:be:12:7e:22:23:c3:e1:56:30:d6:cd:65:b7:ab:42. Please contact your system administrator. Add correct host key in /.ssh/known_hosts to get rid of this message. Offending ECDSA key in /.ssh/known_hosts:7 ECDSA host key for xxxxxxxxxxxxx.yyy.au has changed and you have requested strict checking. Host key verification failed. NaCl plugin exited with status code 255. 在 Linux 底下的處理十分簡單,打開 ~/.ssh/known_hosts 的檔案並刪除第...

信仰反思

今天看到一篇挺有趣的文章,或者應該說值得讓人深思的文章。首先把連結放在下面: 6 Heretics Who Should Be Banned From Evangelicalism 標題的中文翻譯應該是「六個應該被福音派拒絕的異教徒」,猜猜作者列了哪六個人?答案如下: C. S. Lewis 理由:Lewis 相信其他宗教的人也許也能夠得救(不過作者沒給說明,我又跟 Lewis 不太熟)。第二點是 Lewis 不接受「代罰」的贖罪論。 Martin Luther 理由:馬丁路得不相信「聖經無誤」。雖然作者給的例子蠻爛的,是用聖經中的死亡人數來說明馬丁路得不相信真的死了這麼多人。 ST. Augustine 理由:奧古斯丁不按字面的意思來解釋創世紀第一章。 William Barclay 理由:巴克萊相信普救論。 John Stott 理由:斯托得認為沒有永恆的地獄,靈魂會滅亡,不然上帝就太殘酷了。 Billy Graham  理由:那些有可能沒聽過耶穌的人也有可能得救。 對於自認是福音派基督徒的我來說,這些問題都很值得深思。問題在哪裡?我認為在於基督徒自以為能夠對所有的問題提出好的、能說服人的答案。我很喜歡聽唐崇榮牧師講道,風趣、機制、還有那種動力,真的讓人看到上帝是如何地重用他。然而,那種「橫眉冷對千夫指」的那種態度,不但造就了一群唐迷,也造就了另外一群的敵人。「難道只有你說的是對的嗎?」這是大部份反對唐牧師的人會發出的質疑。當然不排除這種質疑帶了幾分的情緒在裏面。而這種對立大概可以看成福音派和其他人意見相左時的衝突縮影。 以個人的立場來說,我大部分的議題仍持守所謂「福音派」的立場,但是我愈來愈覺得神其實並沒有告訴我們這麼多。神告訴我們祂創造了世界,但祂並沒有向我們展示細節與內部的詳細過程;神向我們說明世界末日、最後的審判,但也沒有明確的指示那到底是怎麼一回事,那日子到底是什麼時候。在這過程當中,我們有太多可以選擇的解釋方法,不管是「智慧創造論」或是「神導演化論」,「前千」、「後千」、「無千」不同的解釋, 我認為基督徒最好的處理方式就是承認自己的無知,將這些問題歸於「奧秘」,並繼續仰望依靠上帝 。 這種方式會帶來另外一個問題。因為每個人對聖經的解讀不一樣,所以在面對問題的處理方式也會因為釋經的立場不同而帶出不同的選擇。就如...

我對同性戀議題的態度

最近大法官釋憲的結果出爐了,毫無意外的,以 11:3 壓倒性的比率通過了民法目前對於婚姻的定義違反了憲法中所謂的「婚姻自由」。有不少抗議人士開始喊著這個議題應該要交付公投,其實我心中一直很納悶,他們到底哪來的信心覺得公投的話就會贏啊?(如果可以開賭盤的話我一定押輸的那一邊) 我是基督徒,在同性戀這個議題上我持的是反對的意見。不過我一直以來很討厭這些反同團體的論述,如果有在看像是「 沃草烙哲學 」之類的人應該會看到很多反駁的文章(或者說是打臉),看了都讓人覺得難過。既然如此,那為什麼我還是反對同性戀呢? 其實在諸多關於基督教信仰和同性戀的這個議題上,我認為寫的最好的文章是這一篇「 證明「恐同教義」很荒唐一萬次,也不會因此而改變,因為…… 」 作者不是基督徒,我也不認識他,不過我知道我弟和我一些朋友認識他,應該就是他口中漸行漸遠的團契朋友。他很清楚的說明了基督徒的立場, 我反對同性戀,是因為上帝看同性戀事件罪惡的事情,而我順從上帝的帶領 ,只是這樣,沒有其他的理由。跟同性戀無法生育、是天生還是後天的、可能有的社會問題等等都無關,就算社會逐漸改變制度,這些對一般人來說逐漸不是問題了,我還是反對同性戀。 那篇文章的作者謝宇程說:「我自己經歷一次信仰的轉骨,對一個有信仰的人來說,那其實是一次剝皮斷骨、切筋割肉的過程。」對他而言,選擇其他的「真理」(像是自由、平等、開放之類的)更符合人理智所能接受的美好。然而真理是由人來決定的嗎? 不管是不是基督徒都會知道聖經中的一段經文:「神愛世人」,可是有多少非基督徒會知道後面的經文呢? 約3:16-19 神愛世人,甚至將他的獨生子賜給他們,叫一切信他的,不致滅亡,反得永生。因為 神差他的兒子降世,不是要定世人的罪(或作:審判世人;下同),乃是要叫世人因他得救。信他的人,不被定罪;不信的人,罪已經定了,因為他不信 神獨生子的名。光來到世間,世人因自己的行為是惡的,不愛光,倒愛黑暗,定他們的罪就是在此。  神愛世人,所以救人脫離罪惡,這個罪並不是人自己憑自己意思所決定的規範,而是上帝所定的。什麼是「罪」,這邊很明顯的告訴我們「不信上帝獨生子就是罪」。這個定義有多少非基督徒能夠接受呢?就是基督徒自己也愈來愈多人以愛為名而不理會上帝對罪惡的厭惡以及救恩的寶貴。  謝宇程在他的文章中另外講了一件很重要...

使用 Serial Port 來除錯的時候請小心

一般來說,程式設計師在除錯的時候常常會用的一種方式就是 print 大法,在程式適當的地方插入一些顯示資訊的指令,提供開發者更多資料來除錯。而在使用這個方法來除錯的時候,有很高的機會是利用 serial port 來顯示信息,特別是在嵌入式系統的開發上。然而當透過 serial port 來印信息的時候有著潛在的風險,因為在工作上遇到了,所以就特別紀錄在下面。首先先來看看下面這一段程式。 1 2 3 4 5 6 7 #!/usr/bin/python import sys import time for item in range( 0, 10000, 1 ): print str( item ) + " ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ" 這段程式相當的簡單,就只是單純的把一個字串印個 10000 次罷了。然後我們分別透過 SSH 以及 Serial port 連到測試設備上執行這個程式,並利用 time 這個指令來量測時間。結果記錄在下面(省略印字串的輸出)。 SSH: root@OpenWrt:~# time ./test_print_01.py real    0m 0.68s user    0m 0.18s sys     0m 0.08s Serial Port (115200): root@OpenWrt:~# time ./test_print_01.py real    1m 8.18s user    0m 0.17s sys     0m 0.07s 可以發現時間差距非常的多,理由很簡單,因為 serial port 的輸出速度只有 115200 bps (本篇的實驗設備),所以慢也很正常的。問題是,如果今天要除錯的程式是一隻 time critical 的程式,那這就會遇到很大的麻煩。先把程式列在下面: test_print.py 1 2 ...

隨筆:技術的演進

在我還在念碩士班的時候,那時候一個碩士學姐講了一個她在工作上有人來面試的經驗。 學姊:你好,歡迎來應徵軟體開發工程師吧。你看看這些題目 ... 應徵者:這些我不會ㄟ ... 學姊:(太難了嗎 ... ) 沒關係,能寫多少就先寫,有問題也可以討論看看 應徵者:但是我看不懂 學姊:你知道我們要找的是 JAVA 的開發工程師吧 應徵者:我對寫 JAVA script 很有經驗 學姊:... 在當下,實驗室的人都笑了。連 JAVA 和 JAVA script 都分不清的人也敢過來面試,JAVA script 不過就是一堆美化網頁用的小技巧罷了... 這麼多年過去了,看看 HTML5、node JS ... 我不禁為當年的無知吸了一口氣。

靈修分享:神是愛

約壹3:16 主為我們捨命,我們從此就知道何為愛 ;我們也當為弟兄捨命。 約壹4:7-19 親愛的弟兄啊,我們應當彼此相愛,因為愛是從神來的。凡有愛心的,都是由神而生,並且認識神。沒有愛心的,就不認識神,因為 神就是愛 。神差他獨生子到世間來,使我們藉著他得生,神愛我們的心在此就顯明了。不是我們愛神,乃是神愛我們,差他的兒子為我們的罪做了挽回祭, 這就是愛了 。親愛的弟兄啊,神既是這樣愛我們,我們也當彼此相愛。從來沒有人見過神,我們若彼此相愛,神就住在我們裡面,愛他的心在我們裡面得以完全了。神將他的靈賜給我們,從此就知道我們是住在他裡面,他也住在我們裡面。父差子做世人的救主,這是我們所看見且作見證的。凡認耶穌為神兒子的,神就住在他裡面,他也住在神裡面。神愛我們的心,我們也知道也信。 神就是愛 ,住在愛裡面的,就是住在神裡面,神也住在他裡面。 這樣,愛在我們裡面得以完全,我們就可以在審判的日子坦然無懼;因為他如何,我們在這世上也如何。愛裡沒有懼怕,愛既完全,就把懼怕除去,因為懼怕裡含著刑罰;懼怕的人在愛裡未得完全。我們愛,因為神先愛我們。人若說「我愛神」,卻恨他的弟兄,就是說謊話的;不愛他所看見的弟兄,就不能愛沒有看見的神。愛神的,也當愛弟兄,這是我們從神所受的命令。 不管是不是基督徒,也先不管認不認同,幾乎所有人都知道基督徒很喜歡喊的一句口號(或是經文):神就是愛。愛,這是多美好的一個字,幾乎我們所想到所有的美善都可以歸到這個字裡面,對基督徒來說,用這個字來形容上帝是多美好的一件事情。可是真的是這樣嗎?有時候想一想,我發現很多基督徒們在這部分似乎搞錯了甚麼 ... 再繼續之前,還是要來一段宣告,下面的分享是本人的立場。我沒有要求誰一定要接受,就算看法不同也還是可以討論的,不過這真的是我所想的。 唐崇榮牧師曾經分享一個故事。有個牧師對唐牧師說:【只有一件事情能夠讓上帝受限制,那就是愛。】唐牧師表示無法接受這種說法,不過卻可以理解為什麼這個牧師這樣說。對唐牧師的神學觀來說,上帝是超越者,因此沒有任何東西可以限制上帝,所以正確的說法應該是上帝以祂自己的主權順服在祂自己的原則愛下面來行事,但除了描述用語以外,很明顯唐牧師並不會反對這句話的內容本身。可是以我來看,這句話卻有另外一個問題, 那就是用【愛】做為一個脫離上帝的客體來反過頭定義上帝。 這是甚麼意思呢?我們看...

libpcap 使用範例

最近因為工作上的需求,所以透過 libpcap 寫了一個小程式。程式紀錄在下面。應該不難懂,所以就不多做說明。程式主要參考 sniffex ,不過主要針對  DHCP 的封包進行攔截以及顯示。 #include #include #include #include #include #include #include #include #define SIZE_ETHERNET (14) #define SIZE_UDP (8) #define ETHER_ADDR_LEN (6) const char *DHCP_MSG_TYPE_STR[9] = { "None", "DHCP Discover", "DHCP Offer", "DHCP Request", "DHCP Decline", "DHCP ACK", "DHCP NACK", "DHCP Release", "DHCP Inform" }; struct sniff_ethernet { uint8_t ether_dhost[ETHER_ADDR_LEN]; /* destination host address */ uint8_t ether_shost[ETHER_ADDR_LEN]; /* source host address */ uint16_t ether_type; /* IP? ARP? RARP? etc */ }; struct sniff_ip { uint8_t ip_vhl; /* version << 4 | header length >> 2 */ uint8_t ip_tos; /* type of service */ uint16_t ip_len; /...