1.概述
傳統的遠程登錄(telnet,rlogin)時不安全的,他們在網絡上用明文傳輸口令和數據,SSH則是安全的,openssh提供兩種級別的驗證方式。
(1)基於口令的安全驗證:知道服務器的帳號密碼即可遠程登錄,口令和數據在傳輸過程中都會被加密。
(2)基於密鑰的安全驗證:此時需要在創建一對密鑰,把公有密鑰放到遠程服務器上自己的宿主目錄中,而私有密鑰則由自己保存。
2.軟件安裝
sudo apt-cache policy openssh-client openssh-server 檢查軟件是否安裝
服務端: sudo apt-get install openssh-server
客戶端: sudo apt-get install openssh-client (ubuntu10.10以后的版本都已經安裝了)
該軟件包中還攜帶了一些其他的SSH工具,如ssh-keygen用來生成私鑰/公鑰對;scp可以用通過ssh遠程復制文件;stfp可以實現的ftp傳輸文件
3.配置文件
zone@zone-ThinkPad-T410:/etc/ssh$ ls -l total 148 -rw-r--r-- 1 root root 125749 2010-09-15 02:34 moduli //ssh服務器的Diffie-Helllman密鑰文件 -rw-r--r-- 1 root root 1669 2010-09-15 02:34 ssh_config //ssh客戶端配置文件 -rw-r--r-- 1 root root 2453 2011-03-09 14:09 sshd_config //ssh服務器端配置文件 -rw------- 1 root root 672 2011-03-09 14:09 ssh_host_dsa_key //ssh服務器端dsa算法私鑰 -rw-r--r-- 1 root root 613 2011-03-09 14:09 ssh_host_dsa_key.pub //ssh服務器rsa公鑰 -rw------- 1 root root 1675 2011-03-09 14:09 ssh_host_rsa_key //ssh服務器rsa算法私鑰 -rw-r--r-- 1 root root 405 2011-03-09 14:09 ssh_host_rsa_key.pub /ssh服務器rsa算法公鑰
4.常用命令
sudo /etc/init.d/ssh start|stop|restart|status(其中一個)
5.基於口令的認證
ssh 192.168.0.143/主機名(server ip 192.168.0.143)
初次登錄服務器時會出現許多信息,這是因為ssh不能識別這台主機,輸入yes后將會把這台服務器的信息寫入~/.ssh/known_hosts文件,下次登錄時就不會出現這樣的信息。
6.基於密鑰的認證
將公鑰復制到遠程服務器上;
這樣當client登錄server時,會向server提出請求,用私鑰認證;
server收到請求后,尋找公鑰進行身份認證。
(1)生成密鑰 ssh-keygen -t rsa/dsa( 默認rsa)
生成私鑰:~/.ssh/id_rsa,公鑰~/.ssh/id_rsa.pub,
(2) scp id_rsa.pub 192.168.0.143:.ssh/authorized_keys 並確保權限為644。
(3) ssh 192.168.0.143 如果執行ssh-keygen過程中設置了私鑰密碼,則登錄過程中會要求輸入私鑰密碼。否則直接登錄完成。
7.scp簡單使用
scp ip1:file1 ip2:file2
其中第一個參數是源文件,第二個時目標文件,當參數是ssh登錄到的主機時可以省略ip或者主機名。當是兩個參數是兩台遠程主機的ip時,可以實現兩台遠程主機之間的文件傳輸。
例如 scp /home/zone/1.sh 192.168.0.143:/home/erpang 就會從服務器下載1.sh到143主機的erpang目錄下。
原文鏈接:http://www.cnblogs.com/xdzone/archive/2011/03/09/1978327.html