1. 程式人生 > 其它 >如何利用命令手冊排查故障

如何利用命令手冊排查故障

今天在使用GIt push檔案的時候突然報錯,大概就是known_hosts讀取出現錯誤。我表示很慌啊,有人黑我?剛才還好好的怎麼突然就出現問題了?很不幸此時我卻並沒有仔細分析錯誤可能的原因,而是直接貼上了關鍵字到Google上進行搜尋,然後東牆補西牆終於牆立了起來。剛開始時顯示是一個檔案known_hosts出現了錯誤,後來查資料知道known_hosts檔案用於驗證遠端登陸系統的身份,是一個快取檔案,嘗試修改卻發現裡面的程式碼完全看不懂,決定刪除,然後讓系統重新建立一個快取檔案,很不幸,創建出來的還是原來那個有問題的。我不清楚是什麼原因導致的這個檔案的讀取錯誤,從這個檔案的功能可以猜測出本地的公鑰和遠端有不一致,這真的太奇怪了,然後我採取的方法是將之前的ssh資料夾中所有的檔案刪除,重新建立rsa檔案,將它註冊到github上,並將rsa檔案註冊到ssh中,但很不幸,相同的操作(ssh-add ~/.ssh/id_rsa)別人行我卻不行,後來查資料知道需要多一個引數(ssh -add -K ~/.ssh/id_rsa),或許是版本的問題。在命令列操作中,每一個引數都不是白給的,都有自己的作用,我在中文文件中找不到一個想要的答案,最終在ssh官網中找到這些命令列的手冊,事實上在這個命令中並沒有給出例如--help這樣的幫助手冊,我發現這個-K引數的作用是:在代理中載入金鑰或從代理中刪除金鑰時,僅處理普通私鑰,跳過證書。或許是在這一步的證書驗證出現了問題,加上這個引數了以後可以直接載入金鑰為普通私鑰。還有一個疑惑點是ssh登陸的引數-T在有的文章中有,有的沒有(

ssh -T [email protected]),這個引數在ssh官網居然沒查到,然後我用引文搜尋ssh command manual,發現這個引數的作用是:禁用偽終端分配。這實在是太抽象了,又是一個新的知識,在Stack Overflow上找到解釋,這個引數是可以用來測試連線,獲得安全的連線。這個問題告訴我,解決問題要從問題的表象出發,參照別人解決問題經驗,嘗試是否能夠解決,發現有問題就參考一下官方文件找出可能的解決方案。