用本地linux通過ssh連接遠程服務器

最近一直都在糾結怎麼用本地的linux連接遠程的服務器   哈哈哈  在網上找到了一個資料   然後就成功了   記錄下,linux還可以這樣玩  哈哈
 
http://edu.codepub.com/2010/1017/26448.php
 
SSH
傳統的網絡服務程序,如FTP,POP,TELNET等在本質上都是不安全的,因爲他們在網絡上使用明文傳送口令和數據.別有用心的人非常容易截獲這些口令和數據.而且這些服務程序的安全驗證方式也是有弱點的.就是很容易收到"中
SSH
傳統的網絡服務程序, FTP,POP,TELNET 等在本質上都是不安全的 , 因爲他們在網絡上使用明文傳送口令和數據 . 別有用心的人非常容易截獲這些口令和數據 . 而且這些服務程序的安全驗證方式也是有弱點的 . 就是很容易收到 " 中間人 " 冒充真正服務器接收你傳給服務器的數據 . 然後在冒充你把數據傳給真的服務器 .
SSH的全稱是 Secure SHell. 通過使用 SSH, 你可以將所有傳輸的數據加密 . 這樣 " 中間人 " 這種方式就不可能實現了 . 而且也能夠防止 DNS IP 欺騙 . 還有額外的好處就是數據是經過壓縮的 , 傳輸速度塊 .SSH 具有很多功能 , 可以作爲 TELNET 的替代品 , 也可以爲 FTP,POP 甚至 PPP 提供一個安全 " 通道 .
SSH有兩個不兼容的版本 ,1.x 2.x; 使用 SSH2.x 的客戶端是不能夠連接到 SSH1.x 上的 .OpenSSH 同時支持這兩種版本 .
 
SSH的安全驗證機制
SSH的安全驗證從客戶端來看 , 提供兩種級別的安全驗證 .
1.  >>>>基於口令的安全驗證 <<<<
只要你知道自己的賬號和口令, 就可以登錄到遠程主機 . 所有傳輸的數據會被加密 , 但不能保證你正在連接的服務器就是你想連接的服務器 . 可能會有別的服務器正在冒充真的服務器 , 也就是會受到 " 中間人 " 的*** .
2.  >>>>基於密鑰的安全驗證 <<<<
需要依靠密鑰, 也就是你必須爲自己創建一對密鑰 , 並將公鑰放在需要需要訪問的服務器上 . 如果你連接到 SSH 服務器 , 客戶端軟件就會向服務器發出請求 , 請求用你的密鑰進行安全驗證 . 服務器收到請求後 , 先在該服務器的 home 目錄下尋找你的公用密鑰 , 然後把它和你發來的公用密鑰進行比較 . 如果兩個密鑰一致 , 服務器就用公用密鑰加密 " 質詢 " 並把它發給客戶端 . 客戶端收到 " 質詢 " 後就可以用你的私人密鑰解密在將其發給服務器 . 這種方式必須知道自己的密鑰口令 .
 
安裝測試OpenSSH  -  測試系統Ubuntu10.04
 
    sudo apt-get install openssh-client ;安裝 SSH 客戶端
    sudo apt-get install openssh-server ;安裝 SSH 服務器端
    sudo /etc/init.d/ssh restart          ;啓動 SSH 服務
    netstat -tlp                             ;測試 SSH 服務 . 出現一下信息 , 說明 SSH 配置成功 .
    tcp 0 0 *:ssh *:* LISTEN -
    tcp6 0 0 [::]:ssh [::]:* LISTEN -
 
先在可以嘗試第一次連接, 連接命令如下 :
    ssh -l USERNAME HOSTIP
    ;連接命令 ,USERNAME 爲用戶名 ,HOSTIP 爲主機 IP, 第一次連接顯示如下信息 :
    The authenticity of host '192.168.3.194 (192.168.3.19)' can't be established.RSA key
    fingerprint is e1:ef:04:1c:37:c4:f7:c1:98:1d:a5:0d:f4:ca:50:af.Are you sure you
    want to continue connecting (yes/no)? yes 
    ;SSH告知用戶 , 這個主機不能識別 , 這時鍵入 "yes",SSH 就會將相關信息 , 寫入 "~/.ssh/know_hosts" ,
    ;再次訪問 , 就不會有這些信息了 . 然後輸入完口令 , 就可以登錄到主機了 .
 
SSH密鑰的創建
生成和分發SSH 密鑰 , 過程如下
    /.ssh# ssh-keygen     ;生成密鑰
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/birdy/.ssh/id_rsa): ;輸入回車
    Enter passphrase (empty for no passphrase): ;輸入密碼
    Enter same passphrase again: ;再次輸入
    Your identification has been saved in /home/birdy/.ssh/id_rsa.;保存爲 id_rsa
    Your public key has been saved in /home/birdy/.ssh/id_rsa.pub.;保存爲 id_rsa.pub
    The key fingerprint is:
    ;[內容 ]
    The key's randomart image is:
    ;[內容 ]
    /.ssh# ssh-keygen -d ; 如果是SSH2.x 用該命令生成
    Generating public/private dsa key pair.
    Enter file in which to save the key (/home/birdy/.ssh/id_dsa):
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/birdy/.ssh/id_dsa.
    Your public key has been saved in /home/birdy/.ssh/id_dsa.pub.
    The key fingerprint is:
    ;[內容 ]
    The key's randomart image is:
    ;[內容 ]
    birdy@birdy-desktop:~/.ssh$
爲了防止別人知道你的密鑰, 定期的重新更新並分發密鑰 , 創建好密鑰後 , 你的主目錄下應該有下面的文件 , 私鑰的權限爲'-rw-------', 公鑰的權限爲 '-rw-r--r--' 否則你的SSH 就不會工作 .
而在你不再會去使用SSH 服務的時候 ( 比如 , 你換了一臺主機 ), 記得要 刪除 他們.
如果你創建的密鑰文件不再主目錄下的.ssh 目錄下 , 要將他們拷貝進去並保證正確的文件權限
    birdy@birdy-desktop:~/.ssh$ ll
    總用量 20
    -rw------- 1 birdy birdy  736 2010-10-15 13:44 id_dsa
    -rw-r--r-- 1 birdy birdy  609 2010-10-15 13:44 id_dsa.pub
    -rw------- 1 birdy birdy 1743 2010-10-15 13:44 id_rsa
    -rw-r--r-- 1 birdy birdy  401 2010-10-15 13:44 id_rsa.pub
    -rw-r--r-- 1 birdy birdy  442 2010-10-15 10:55 known_hosts
 
SSH配置
SSH安裝的時候 , 沒有默認的用戶配置文件 , 不過我們可以自己加 . 如果你要登陸 192.168.3.11 上的 linux 用戶 , 你可以鍵入 "ssh -l linux 192.168.3.11" 下面介紹一下簡化這個命令的方法 .
~/.ssh 下建立文件 config 編寫一下內容 :
    Host *linux
    HostName 192.168.3.11
    User linux
在命令行運行"ssh linux" 就可以登錄 192.168.3.11:linux .
當然, 還有更多別的選項 , ForwardAgent, Compression, ForwardX11 FallBackToRsh . 這裏就不羅列了 .man 一下 , 應該都有了 .
 
"scp" 拷貝文件和目錄
SSH提供了一些命令和 shell 用來登錄遠程服務器 . 在默認情況下 , 不允許你拷貝文件 , 但還是提供了一個 "scp" 命令 , 使用方法如下 :
    ;本地文件複製到遠程
    scp FileName RemoteUserName@RemoteHostIp:RemoteFile
    scp FileName RemoteHostIp:RemoteFolder
    scp FileName RemoteHostIp:RemoteFile
    ;本地目錄複製到遠程
    scp -r FolderName RemoteUserName@RemoteHostIp:RemoteFolder
    scp -r FolderName RemoteHostIp:RemoteFolder
    ;遠程文件複製到本地
    scp RemoteUserName@RemoteHostIp:RemoteFile FileName
    scp RemoteHostIp:RemoteFolder FileName
    scp RemoteHostIp:RemoteFile FileName
    ;遠程目錄複製到本地
    scp -r RemoteUserName@RemoteHostIp:RemoteFolder FolderName
    scp -r RemoteHostIp:RemoteFolder FolderName
 
轉自 http://blog.csdn.net/zhangjian33446/article/details/6363444?reload
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章