用手機遠程登入電腦,太高端了。。。。

來源:互聯網
上載者:User

轉載自http://songtl.com/2012/04/22/%E4%BB%A3%E7%A0%81%E6%B5%8B%E8%AF%95/

Linux實現SSH遠程登入

Author:
song       Date: April 22nd, 2012

遠程登入方式有telnet和ssh兩種方式,由於telnet使用的是明文傳輸,傳輸過程中系統帳號密碼等重要訊息容易被截獲,安全性比不上SSH(secure shell),因此本文討論的是通過ssh實現遠程登入的方法。

其實很多linux版本如ubuntu已經內建了ssh-agent,這是一個遠端連線的工具,即你可以通過ssh-agent串連到別人的電腦實現遠程登入,但是如果你要想實現在其他電腦遠程登入自己的電腦,就必須安裝openssh,可以通過以下命令
ubuntu

sudo apt-get install openssh

ArchLinux

sudo pacman -S openssh

系統會自動下載並完成安裝,完成後可通過以下命令查看ssh服務是否啟動

ps -e | grep sshd

如果沒有sshd這個進程,手動啟動
ubuntu

 sudo /etc/init.d/ssh start

ArchLinux

sudo /etc/rc.d/sshd start

ArchLinux把sshd添加到DAEMONS數組開機啟動

DAEMONS=(syslog-ng network crond dbus alsa @openntpd sshd)

如果出現sshd進程,表示ssh服務已經啟動,此時不出意外你在其他電腦上就可以通過ssh串連到自己的電腦上面了。關於ssh連結的工具,windows平台上面推薦putty軟體,這是一個非常受歡迎的軟體,使用也比較簡單。建議官方下載英文版(其實也就那幾個簡單英文單詞),前段時間漢化版putty有後門的事在網上炒得沸沸揚揚。Linux系統因為已經內建ssh-agent所以比較方便,直接在terminal裡面輸入以下命令

ssh username@ip

username是你的登入賬戶,ip即ip地址,當然你也可以使用網域名稱

ssh username@domain

此時系統會要求你輸入密碼進行驗證,驗證通過就能登入到遠程主機。至此,我們就完成了ssh遠程登入的安裝!但是,我們需要對ssh服務進行一些簡單的安全配置,否則日後你查看ssh記錄檔的時候會發現大量ip的登入失敗資訊。其實是別人通過連接埠掃描軟體掃描出開啟來22(ssh預設)連接埠的主機,然後通過窮舉法進行密碼猜解,如果你使用的是弱口令,被猜解出的幾率是非常高的。

配置資訊儲存在
ubuntu

/etc/ssh/ssh.conf

Archlinux

/etc/ssh/sshd.config

我們可以通過編輯這個檔案來進行配置。當你嘗試登入別人的主機的時候你會以什麼身份登入?當然是root使用者,因為root使用者每個系統都存在。因此我們應該禁用root使用者登入,找到

PermitRootLogin yes

把yes改為no即可。

連接埠掃描軟體預設掃描22連接埠,因此我們也可以把連接埠改成其他連接埠,找到以下語句

port 22

把其中的22改成你其他連接埠,比如1022之類的。

限制一下最大密碼錯誤次數,3次吧,自己登入基本不會連續錯3次,密碼錯誤超過3次拒絕登入

MaxAuthTries 3

修改之後儲存退出,至於進階進階的安全配置可以參考官方文檔。

重啟ssh服務
ubuntu

sudo /etc/init.d/ssh restart

ArchLinux

sudo /etc/rc.d/sshd restart

注意,修改了連接埠之後用CLI模式登入時需要聲明連接埠

ssh -p 1022 username@ip

通過簡單的配置後你會發現來自不明ip的失敗登入明顯的減少。忘了說,ssh登入日誌儲存在這個檔案

/var/log/auth.log

在Archlinux下這個檔案的擁有者為root,群組為log,許可權為640,為了方便普通使用者查看日誌,把使用者加入到log組(不推薦others加許可權)

sudo gpasswd -a song log

平時可以cat一下這個檔案看看登入記錄,當然有時檔案會比較長,特別是沒禁用root使用者之前,往往來自同一個ip的登入失敗次數達到數千條,如果你一行行查看得看到什麼時候,因此我們只輸出root登入失敗的記錄(雖然禁用root登入,但有人嘗試以root身份登入時系統仍會記錄)

grep "Failed password for root" /var/log/auth.log | awk {'print $11'} | uniq -c | sort -rn

系統會列出曾經登入失敗的ip並且統計失敗次數從高到底排列,當然你也可以輸入登入成功的記錄

grep "Accepted password for " /var/log/auth.log

系統會列出曾經登入主機的記錄,包括時間、ip地址等

另外,本人使用的是Android的手機,使用的是Linux的核心,所以希望也能從手機遠程登入自己的電腦。首先,手機上安裝支援ssh串連的軟體,Cyanogenmod7版本的系統就內建一個Terminal,簡直就是一個微型的linux終端,基本上很多基本的指令都能執行,比如:ls,cd,mount,cat,nano等等。接下來還有一個問題,我使用的是電信的ADSL,通過TP-link路由器pppoe撥接,每次撥號擷取的ip都不一樣,這樣是無法ssh登入的,因為你不知道下一次擷取的ip地址是多少。於是想到了windows下的花生殼用戶端,可以動態解析網域名稱,趕緊到花生殼網站申請了一個免費網域名稱,不過當時還沒發布linux的用戶端(現在有源碼安裝),隱約好像記得TP-link有動態DNS功能,登入上去果不其然,在動態DNS的服務提供者選花生殼,賬戶密碼就填花生殼網站的賬戶密碼,登入之後就會把花生殼帳號綁定的網域名稱解析到本地,但是當你通過網域名稱ssh串連的時候發現是串連不上的,因為撥接的是路由器,花生殼會把網域名稱解析到你的路由器,而不是你的電腦,因此還要做進一步設定。在TP-link路由器設定頁面的轉寄規則裡選DMZ主機,把DMZ狀態設定啟用,DMZ主機ip地址填你從路由器DHCP伺服器獲得ip,如果你的路由器比較多人上網可能每次從DHCP獲得的ip也是不一樣的,所以要把你的主機mac地址和某一個ip地址綁定,也就是把某一個ip位址保留區給你的網卡,讓你每次擷取的都是同一個ip,把這個ip地址填到DMZ主機ip地址裡面。再用網域名稱來ssh串連發現已經可以正常連結了。

最後放上幾張手機遠程登入主機成功後的
welcome to ubuntu

熟悉的根目錄

檔案詳細資料

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.