噴火獸號:裴列恩之艦

人總是後悔那些沒做的事,而不是做過的事。

Start ssh-agent upon remote SSH login

leave a comment »

Usually when you log in through GDM/lightDM…, etc, it’ll start ssh-agent for you. But what if I’m logging in from a remote machine through SSH?

After trying a few scripts on the Internet that doesn’t work, I decided to do it myself.

I’m going to set this up in tcsh environment, so this probably won’t work in bash.

Open ~/.login , tcsh will execute commands in this file after login, add

eval `ssh-agent -c`

And that’s it, basically it just set some environment variables.

eval will take its argument as an command and execute it, `ssh-agent -c` means the output of ssh-agent -c , not the string ‘ssh-agent -c’ itself.

-c will 『Generate C-shell commands on stdout.』 as the manpage said.

作者為pellaeon

一月 28, 2012 at 4:52 下午

張貼於FreeBSD

標籤

產生 SSH key 給 Bitbucket/Github 使用

leave a comment »

首先當然是弄個帳號:https://bitbucket.org

它讓我很感動的就是竟然有 OpenID 登入!

跟 Github 類似,他也可以直接用 SSH key 來認證,也可以用 HTTPS,不過我猜用 HTTPS 大概每次都要輸密碼吧,不像 ssh-add 一下就可以解鎖整個 session 。

原理簡單來說就是你有私鑰在本機,然後把公鑰放在你想要登入的機器上面(通常是放在那臺機器你的家目錄底下的.ssh/authorized_keys ),你想要登入的時候只要擁有私鑰就可以登入了(當然如果有 Passphrase 的話還是得輸入正確才能使用私鑰)。

而且還可以在本機下 ssh-add ,然後它就會問你你的私鑰 Passphrase ,只要輸入這一次,直到你登出本機之前你就可以一直使用私鑰而不需要每一次都輸入 Passphrase 了。

ssh-keygen, ssh, ssh-add 這些 utility 在 Linux 上絕對有,Mac 上應該也有。可憐的 Windows ,連這種小功能都沒有內建,還要用 putty ……

接下來就實際開始做啦

首先產生一組SSH公鑰/私鑰對:

$ ssh-keygen -t rsa -b 2048

當然想要金鑰長度更長我也不反對啦…… -b 參數調高一點就好了。

然後他會問你金鑰要放在哪裏,建議還是在檔名後面加個識別。

Enter file in which to save the key (/home/pellaeon/.ssh/id_rsa): /home/pellaeon/.ssh/id_rsa_bitbucket

設定 Passphrase ,就是通關密語,每一次用這個金鑰的時候就要輸入才能使用。最好還是設定一下,不要留空白

Enter passphrase (empty for no passphrase):

出現以下這些訊息就是成功產生了,id_rsa_bitbucket 是私鑰,要保管好,不要隨便複製/提供給別人,權限最好設成600。id_rsa_bitbucket.pub 是公鑰。

Your identification has been saved in /home/pellaeon/.ssh/id_rsa_bitbucket.
Your public key has been saved in /home/pellaeon/.ssh/id_rsa_bitbucket.pub.

產生完成了,接下來做一些小設定,讓 ssh 指令在連某一些地址的時候自動用特定的私鑰。打開 ~/.ssh/config ,我的設定是這樣的:

# Github
Host github.com
HostName github.com
User git
IdentityFile /home/pellaeon/.ssh/id_rsa_github
# Bitbucket
Host bitbucket.org
HostName bitbucket.org
User git
IdentityFile /home/pellaeon/.ssh/id_rsa_bitbucket

意思就是連到 github.com 的時候會自動用 ‘git’ 這個使用者還有 id_rsa_github 這個私鑰嘗試登入;
而連到 bitbucket.org 的時候會自動用 ‘git’ 這個使用者還有 id_rsa_bitbucket 這個私鑰嘗試登入;
連綫到這兩臺之外的機器的時候,就會嘗試用你目前在本機已經登入的使用者名稱,還有預設的私鑰 id_rsa 來嘗試登入。

Nice, huh?

作者為pellaeon

一月 21, 2012 at 5:43 下午

張貼於Computer Science

標籤 ,

Filezilla SFTP 『Connection closed by server with exitcode 141″

leave a comment »

Just a quick note, I was trying to connect to a remote server with SFTP using Filezilla. I use SSH key for authentication. But Filezilla threw me this error : 『Connection closed by server with exitcode 141″.

I tried using the commandline sftp with -v , it said:

debug1: Sending subsystem: sftp
debug1: client_input_channel_req: channel 0 rtype exit-signal reply 0
debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
Transferred: sent 3440, received 2568 bytes, in 0.1 seconds
Bytes per second: sent 50284.4, received 37537.9
debug1: Exit status -1

I found that it was my shell configuration which was causing the problem. I have some customized settings, every time I login, it beeps 『MY_VARIABLE:  Undefined variable』. The message causes SFTP to fail.

作者為pellaeon

九月 12, 2011 at 10:21 下午

Running multiple instance of pflogd to log from different pflog interfaces

leave a comment »

Recently I set up a bridging firewall. I read from the PF FAQ that we can log certain packets to different pflog virtual interfaces (pflogN). For example:

block log (to pflog0) on $ext_if all

It is possible to create multiple pflog interfaces with ifconfig and read it with tcpdump . The problem is that pflogd which reads from pflog interfaces and records it into logfiles can only record one pflog interface. (unless you start a pflogd instance manually and assign the interface to log without using the rc scripts, not quite elegant). I tried this setting in rc.conf but it doesn’t work:

pflog_flags="-i pflog0 -f /var/log/pf/ext_if.log -i pflog1 -f /var/log/pf/mgt_if.log"

The -i parameter specifies the interface to log from and the -f parameter specifies which file to log to.

After some hours of googling I finally seem to find a solution: http://www.freebsd.org/cgi/query-pr.cgi?pr=158171&cat=

Basically it just patches /etc/rc.d/pflogd so that the script can handle multiple pflogd instances.

There are some discussions in the mailing list saying that the patched script has some potential problem (syntax parsing, security, etc.). But as I tested, the main functionality does work, and I guess this is the best solution I can find.

I applied the patch to my pflogd script and the corresponding manpage (actually the patch utility throws me some errors that I don’t quite understand so I edit those files by hand). The ftp-proxy script seems to be another story so I didn’t look into it. (it has nothing to do with my problem)

Patch for /etc/rc.d/pflog: http://www.mediafire.com/file/2wn3r31hju5jfh3/pflog.patch

Modified /usr/share/man/man8/pflogd.8.gz: http://www.mediafire.com/file/2484bnc4msx6v42/pflogd.8.gz

And then the next problem for me is that, I don’t understand the manpage! After some guessing and trying and reading the script, I finally figured it out, below is part of my rc.conf:

pflog_enable="YES" # start pflogd(8)
pflog_instances="0 1"
pflog_0_dev="pflog0"
pflog_0_logfile="/var/log/pf/ext_if.log"
pflog_1_dev="pflog1"
pflog_1_logfile="/var/log/pf/mgt_if.log"

Next time you do # /etc/rc.d/pflog restart it’ll start logging 2 interfaces to 2 files!

Oh, I forgot to mention, I set this all up in FreeBSD 8.2.

作者為pellaeon

九月 1, 2011 at 10:48 下午

張貼於CNMC, FreeBSD

掙扎

leave a comment »

最近決定要常常把自己的心情記錄下來,即使短短的也好,這些都是以後的記憶啊。

心裏一直打算着要找某人來社辦讀書,那封簡訊卻依然躺在記憶體裏

漸漸開始讀書,也很驚訝自己竟然對電腦的感覺降低了,修bug修到一半不想修

潛意識知道 吧

明天交接,等一下要去整理東西

他們不知道自己在幹嘛

希望一年後證明我是錯的

剛開始嘴巴上說不想管了,明明就很在意

我以爲會這樣在意下去

我發現自己真的已經漸漸不再那麼在意了

比較希望,有人一起讀書,累的時候,悲傷的時候,單純有個人在那裏

其實你很怕孤單吧,比別人更需要更認同

太奇怪

你終究還是個人

有個人隨時會接你電話,一起散步,沒有,就是單純的知道你在那裏

那個要靠衝動吧,是計劃不來的

你到底什麼時候才要?

好像很簡單,又好像很難

就寫到這裏吧

作者為pellaeon

七月 4, 2011 at 10:16 下午

張貼於小語, 心情

即將高三

leave a comment »

今天去建資交接茶會,UDP 一直說,一年就這樣過去了,不甘心。

是啊,不甘心

有一種,才剛開始就結束的感覺

不可能讓時間慢下來,至少我希望可以忘了自己即將升高三這回事

高一進來,努力學習

那年暑假好像才是我人生的開始

真正有一種「我不孤僻,我不宅,我有很多朋友」的感覺

原本以爲,我只要有電腦,沒有朋友也可以活

不得不承認,有朋友還是比較快樂,而且,有知心的朋友才叫「身爲一個人,活着」

或許我只是需要被認同

不只是對技術的狂熱,而是,我真正瞭解,真正認識,真正瞭解我,真正認識我的人,都在這個圈子裏了

我真的很感謝你們,或許你們還有很多朋友,但是,我的朋友,就只有你們了

升高二暑假,是我最快樂的一段時光。天天窩社辦,寫code、寫網頁、看機房,或是忙迎新的事情。

開學,或許是暑假太爽了,一直拼命想要找回那種感覺,人在教室,心在社辦。社辦變成了,避難所。

十月,學生會要弄電子問卷。很高興認識那個人

剛開始我以爲沒什麼,直到……「我也想學電腦」

我在心裏承認了

十二月吧,那個禮拜實在是太高興了

我以爲我終於……我以爲我終於……

差不多是那個時候,我開始聽 Kent 的歌,最喜歡的竟然是 Ärlighet Respekt Kärlek

聖誕節,

那個禮拜之後就。。或許再加上我自我陶醉的那兩個禮拜吧

跨年。

那個快樂,帶來痛苦,還有哀傷,到現在,還持續下去

我從來看不出來

或許剛開始的那個感覺才是對的。

後來,我又發現了一首歌, Chans

還有,真是神奇, December

好不容易撐到寒假,又可以窩社辦了,可是我還要上課,還有春節,所以又沒什麼玩到

2、3、4月都沒什麼活動,覺得很孤單

3/3, the last attempt

4月那次跟學長吃飯,讓我又激起了雄心壯志,起始了很多計劃

IDS, magic router, experimental backup system, experimental svn conf repo…

只是想要騙自己,我還是高二

我生日那天,什麼事都沒發生。

剩下一個月,看到大家都開始努力了,我騙不了自己。

考不上資工系我就慘了

我當然知道只要學測上了,接下來要怎麼玩都可以,問題是,那個感覺不在了,那個高二的感覺,那個「我是高二網管,我能做很多事,我還想做很多事」的感覺,那個「學測還離我很遠」的感覺。朋友也不一定在了,他們也有他們的事。

就算學測上了,高三下再怎麼努力玩社團,你永遠也沒有辦法找回,高二那時候的,那個感覺。

不要想這些,把握最後這一個月吧!

作者為pellaeon

五月 29, 2011 at 4:07 下午

張貼於CNMC, 心情

SSH tunnel 的使用 (-L)

leave a comment »

社辦有一臺機器的 webserver 是跑在 port 81 上面的,偏偏學校的防火牆沒有開 port 81 (有開才有鬼)

還好啦~SSH 有開,那就好辦了。

$ ssh -L 8100:webserver:81 someone@webserver

然後只要連本機的8100就相當於連到 webserver 的 port 81 喔。

實際的運作是:到本機 port 8100 的連綫會被導向至這個 SSH 連綫(本機的某個隨機 port 連到 webserver 的 port 22),然後 webserver 會再把到 webserver port 22 的連綫導到 webserver port 81 。

還有很多神奇的用法啦,像是 -D , -w , -R 。-D 我還蠻常用的。改天再寫吧。

參考:http://indeepnight.blogspot.com/2007/09/ssh-tunnel.html

作者為pellaeon

四月 27, 2011 at 10:40 下午

張貼於CNMC, 酷玩意

用 NFS 安裝 FreeBSD

leave a comment »

做個小筆記

我主要是參考:http://www.freebsd.org/doc/handbook/network-nfs.html

最近在弄一臺機器,FreeBSD 一直灌不上去,後來學弟查了之後跟我說是 SATA driver 的問題(我想說怎麼可能,大概是別的問題吧。不知道,反正一直出現讀取錯誤就是了)。

所以後來就看了一下 handbook ,然後自己架了一個 NFS server ,透過 NFS 安裝,其實還蠻容易的。

先在 server 上面放入 FreeBSD 安裝光碟,然後掛載:

# mount_cd9660 /dev/acd0 /cdrom

然後設定 NFS 要分享的目錄,打開 /etc/exports ,加入:

# /cdrom1 -alldirs <host1> <host2>

<host1> 是你要准許那些機器來存取你的 NFS ,用 IP 或是 hostname 表示,可以有多個,中間就用空白隔開就好了。

-alldirs 這個參數是允許 client 個別掛載該目錄的子目錄,handbook 說透過 NFS 安裝的時候要加這個參數。

啓動 NFS 相關 daemon:

# /etc/rc.d/nfsd onestart
# /etc/rc.d/rpcbind onestart

註:啓動 nfsd 會一併啓動 mountd

接下來就依照平常安裝 FreeBSD 的方式,用光碟開機,然後做磁碟分割、選 distribution ,只是,在選 media 的時候要選 NFS ,然後在跳出的對話框輸入:<server>:/cdrom ,記得把 <server> 換成自己的 NFS server 的 IP 或 hostname 。

接下來設定網卡,記得所設定的 client 的 IP 必須符合剛剛的 <host1> 或是 <host2>

最後按下 Commit 就開始安裝了。

如果想要掛載這個 NFS (不是在安裝的時候):

# mount <server>:/cdrom /mnt/

第一個參數 <server>:/cdrom 是 NFS server ,第二個 /mnt/ 是掛載點

Nice ,搞定!

作者為pellaeon

四月 15, 2011 at 10:13 下午

張貼於FreeBSD

Nexus S 開箱

有一則留言

我等這支好久了,Nexus S 美國去年12/16就上市了。

今年初就在傳說 Nexus S 將會引進臺灣,原本傳說是中華電信,結果後來是臺灣大哥大代理。一傳出可以預購的消息我就馬上跑去臺灣大哥大預購了,我去3/6預購的時候連 DM 都還沒到,店員還不知道價錢多少(我跟他說:「不是18900嗎?」,他還嚇了一跳)。訂金1000元。

3/24 下午,我收到簡訊說可以取貨了,就興沖沖的跑去領貨了。我原本只打算買空機,後來店員跟我廣告說可以搭配學生方案每個月489 3G 吃到飽加200月租費(可以抵通話費),綁30個月,手機只要13900(如果我沒記錯的話)。如果不是我已經有另外一張 3G sim 卡,我一定會搭配他們的方案的……最後當然還是只買了空機,18900 NTD 。

臺灣版的 Nexus S 改採用 super clear LCD (SLCD) ,全世界除了美國與英國採用 AMOLED 之外,都是 SLCD 。

詳細規格嘛,就自己看吧:http://www.google.com.tw/nexus/#/tech-specs

來開箱囉!(搓手

Nexus S box

背面(sorry 相機有點晃到了)

Nexus S box 背面

Nexus S 的 logo 啊(膜拜

Nexus S box 側面

打開囉~

Nexus S box inside

配件:電池、USB線、USB 充電插頭、耳機

配件

開機~Google logo (啊讓大家知道我的相機了)

開機

神聖的 Nexus logo

Nexus logo

Welcome to Nexus S!

Welcome to Nexus S!

第一次進到主畫面(不要緊張,Nexus S 當然有中文界面,只是我忘記改)

第一次進到主畫面

補一張背面照

機身背面

光源感應、聽筒、前置鏡頭

聽筒

好啦,就先寫到這裏,關於軟體的測試改天再寫

我第一次寫開箱文耶,抱歉相機品質有點差(大概是光源的問題吧)

希望這是全臺灣第一篇 Nexus S 開箱文XD

作者為pellaeon

三月 26, 2011 at 5:01 下午

張貼於酷玩意, Nexus S

我與自由軟體

leave a comment »

接觸自由軟體這麼久了,漸漸開始有一些感觸。

我與自由軟體的第一次接觸是在八年級的時候吧,那時候有一位對電腦非常有興趣的地理老師跟我介紹 Ubuntu ,那時候我雖然有聽過 Linux ,不過因爲沒用過,所以並沒有太大的好感,也沒有什麼開放原始碼的概念。會去試用 Ubuntu 有一大部分是因爲 Compiz 超炫的特效。嘗試 Ubuntu 之後,我愛上它的漂亮、簡單與速度。

漂亮,應該是那時候吸引我用 Ubuntu 最大的原因。相較於 Windows 千年不變的主題與新細明體,Ubuntu (或者應該說 Gnome )有太多主題可以選了,那時候 Ubuntu 的中文字型(文泉驛正黑)也是一大原因。在我改用 Ubuntu 之前,曾經花很多時間研究怎麼把 Windows 的佈景主題與字型改的更漂亮,那時候試了很多軟體,結果發現很多進階功能都要付費,而且系統被這些軟體拖得很慢。

簡單,那時候我感到很驚奇的是,管理、安裝軟體怎麼可以這麼簡單?還有與 Windows 完全不同的檔案系統,所有使用者資料都在一起,所有程式資料都在一起。給人一種統一、一致、包裝好的感覺。

速度,這個不用多提。

這麼棒的軟體,讓我想要更瞭解它。

我瞭解到自由軟體與開放原始碼的概念,我真的強烈覺得,這個世界上,怎麼會有一個這麼偉大、這麼崇高的理想,更不可思議的是,怎麼會有這樣的一群人,懷抱着如此遙遠的夢想?

而且,這個夢正快速的往現實邁進。

有人說,大部分的程式設計師都會選擇使用 Mac ,因爲 Mac 是 unix-like ,在 unix-like 的平臺上進行開發比較方便,而且 Mac 非常友善,使用容易。在 Linux 的世界裏,這些程式設計師得花一部分的心力在「建置、維護開發環境上面」,沒有辦法達到最大的生產效率。Mac 讓這些程式設計師可以專注他們的心力在真正的開發上面,不需要分心去維護系統。

Ubuntu 算是扭轉了這一切。

不過我個人覺得,對於一個十幾歲,剛接觸 Linux 不久的人(就是那時候的我啦)來說,剛開始(10.04 以前)的 Ubuntu 也並沒有非常友善,我還是跟一堆怪怪的問題奮鬥了很久(主要是 driver 的問題)。

一直到 Ubuntu 10.04 Lucid Lynx ,Ubuntu 往前跳了一大步,我裝 10.04 的時候是一路順暢,裝完 driver 馬上可以用,真的已經到達所謂的 『works out of the box』 (好啦,一打開還不能用,裝完才能用),我甚至覺得,10.04 的可用性已經超過 Mac 了,反而是我在用 Mac 的時候遇到很多挫折(內建的終端機好爛,iTerm 好一點,可是 irssi 換 window 會有問題)。而且我喜歡 customizable 的東西,在 customizability 的部分,Ubuntu 絕對大勝 Mac 。

所以,目前在我心中,作業系統的喜好程度是 Ubuntu >> Mac ( windows 與 Mac 中間有太多(趨近於無限)大於了,所以看不到)

  • Ubuntu :友善,開源,可自訂程度高(不用設定就很友善)
  • 其他 Linux, BSD:不友善,開源,可自訂程度最高(如果設定的好的話就會很友善)
  • Mac :友善,不開源,可自訂程度中(系統本身可自訂程度低,但是可以裝開源、自定程度高的軟體)
  • Windows :不友善,不開源,可自訂程度低(也可以裝開源程式,可是比較麻煩)

不過,Ubuntu 有個長久以來就有的問題,每次升級一定會爆掉,至少在 10.04 之前都是如此。我不知道 10.04 到 10.10 會不會,因爲我不敢試 XD

Ubuntu 算是陪着我長大啦,我也算是陪着它長大,我開始用的時候是 7.10 ,一直用到現在。我覺得,10.04 開始就像 Ubuntu 的青春期,是進步最快的時期。11.04 又將要帶來一次大變革。

在 10.04 之前,支持我繼續使用 Ubuntu 的動機是對於自由軟體這個偉大理念的認同與熱情。

從 10.04 開始,支持我繼續使用 Ubuntu 的動機主要是它真的好用,再加上上面那個理由。

Ubuntu 現在真的是一套「給每個人的 Linux 」了,如同它的宗旨, Linux for everyone

我與自由軟體的故事幾乎可以等同於我與 Ubuntu 的故事了。

因爲社團的關係,相對於 Ubuntu ,我反而更熟悉 FreeBSD 。我只是單純「會用」Ubuntu ,不瞭解 Ubuntu 的架構(或是說 Debian 系的架構)。可是我不止會用 FreeBSD ,還「算是」瞭解 FreeBSD 。我覺得,就算不瞭解 Ubuntu ,也一定能夠用它。可是不瞭解 FreeBSD ,就不會用它了。

所有作業系統最 user-unfriendly 的地方,就是安裝界面了,就連 Windows 也一樣,有多少人不會重灌 Windows ?其實安裝 Ubuntu 的過程沒有比 Windows 困難,我相信只要會灌 Windows ,就一定會灌 Ubuntu 。灌完之後,Ubuntu 的 usability 絕對是大勝 Windows 的。

Ubuntu 各個方面都是大勝 Windows ,問題是宣傳!宣傳!

另一個阻止 Ubuntu 被使用的原因可以說是人的習慣。

大部分的人總是懼怕改變,(而且似乎在臺灣特別嚴重),這個大家一定都知道,對於人的習慣,我想,我們真的沒有什麼可以做的。我想大部分推廣新東西的人,不管是產品、政策、概念還是自由軟體,一定都會有這種感慨。唉。

不過,我想我們可以從比較願意接受新事物的年輕人開始。大學生,甚至是高中生。我想他們一定會更容易受這個偉大的理想所感召。

現在,我想我除了更努力之外,也只能無奈吧。

願原力與我們同在。

作者為pellaeon

三月 12, 2011 at 12:04 下午

張貼於Open Source, Ubuntu

Follow

Get every new post delivered to your Inbox.