怎么建立SSH進行遠程控制
網(wǎng)絡(luò)被攻擊,很多情況是由于服務器提供了Telnet服務引起的。目前,一種有效代替Telnet服務的有用工具就是SSH服務。SSH客戶端與服務器端通訊時,用戶名及口令均進行了加密,有效防止了對口令的竊聽。學習阿拉小編向大家介紹運行在常用操作系統(tǒng)上的SSH服務器軟件包的使用。
怎么建立SSH進行遠程控制
一、ssh連接的幾種驗證方式:
ssh連接是CS模型(客戶端-服務器),服務器會對客戶端進行驗證。驗證的方法不少,可以在sshd_config配置文件中設(shè)置(Ubuntu是/etc/ssh/sshd_config,mac下是/etc/sshd_config)
這里僅介紹幾種最簡單常見的。
1,最簡單的輸入賬戶密碼
直接輸入所要登陸的用戶的密碼。這個是默認的方式。不需要修改配置文件。
客戶端成功建立到服務器的連接后,自己的 .ssh/目錄下會記錄 服務器的ssh_host_rsa_key.pub(對應的機器的一個rsa加密的公鑰)到lknown_hosts文件里。如果服務器之后改變了這個值,客戶端需要采取辦法修改對應的值,或者刪除,否則無法登入。 ssh_host_rsa_key.pub 跟ssh的配置文件在同一個目錄下。
2,rsa加密驗證
建立的連接的兩端分別是 客戶端(client)和 服務器(server)。
客戶端先使用 ssh-keygen 命令,生成私鑰和公鑰。(這里就牽扯到了一個經(jīng)典的RSA加密算法,不多談),其中私鑰客戶端自己保存,公鑰發(fā)給服務器。如此一來,客戶端要登錄到服務器上實現(xiàn)遠程控制的身份驗證,則在本身的賬戶密碼之外,多了一層保護。每次登陸,客戶端的信息會先經(jīng)過私鑰加密,再傳遞給服務器,服務器匹配上公鑰進行處理后,才能通過。
注意,配置文件可能也需要對應的修改,比如,筆者的版本是openssh5.9p1,需要取消掉 配置文件對 AuthorizedKeysFil %h/.ssh/authorized_keys 這一句的注釋。只要刪掉那個'#',就能執(zhí)行rsa驗證。如此情況下,就不需要輸入密碼驗證了。
3,passphrase口令驗證,增加對rsa private的保護。
這個我自己還沒怎么看明白= =。參見github中的解釋
二、實施細節(jié)
我把我的Mac OS X作為客戶端,小黑的Ubuntu作為服務器端。使用第二種即rsa方法遠程連接。
首先,安裝好ssh
mac下自帶的有,ubuntu下直接sudo apt-get install ssh就好了。(其實是開源的openssh,unix,linux平臺下都可。ssh本身被商業(yè)化了,據(jù)說功能更多。)
其次,在客戶端生成私鑰公鑰,并傳遞給服務器
在mac上用ssh-keygen生成密鑰對。shell指令如下,然后跟著他的提示來好了。passphrase什么都不輸入就好了,果斷回避掉先。
結(jié)果是在用戶根目錄里的.ssh目錄下生成的 id_rsa(私鑰)和id_rsa.pub(公鑰)。
然后,傳送id_rsa.pub到Ubuntu上,命名為authorized_keys。這個過程中默認使用了賬號密碼的驗證方式。
不要忘了修改服務器的配置文件,以支持rsa驗證方式。
找到
這句話,去掉前面的'#'號。(如果沒有找到這句話,則自己加上
即可,位置無關(guān))
最后,登陸
mac下輸入 ssh xxxx@hostAddress
由于之前已經(jīng)完成了一次文件傳輸,已經(jīng)在客戶端的.ssh/know_hosts中記錄下了服務器的key,又采用了rsa的驗證方式,無需輸入密碼,即可建立鏈接。
意外
如果出現(xiàn)在登錄時,出現(xiàn)如下問題:
Agent admitted failure to sign using the key
使用 ssh-add 指令將私鑰 加進來 (根據(jù)個人的密匙命名不同更改 id_rsa)
# ssh-add ~/.ssh/id_rsa
試用
用scp命令試用了下。發(fā)現(xiàn)傳輸速度最高也就1.1M。
網(wǎng)上有說法是開啟-C選項后速度會翻一倍左右,但我的測試結(jié)果仍然是最多1.1M。也使用了rsync命令,同樣是1.1M。
或許是路由器的限速吧= =。以后再查了。
看過“ 怎么建立SSH進行遠程控制 ”的人還看了:
1.解決路由器安全只需簡單六步