【轉】Ubuntu環境下SSH的安裝及使用

原文網址:http://blog.csdn.net/netwalk/article/details/12952051html



SSH是指Secure Shell,是一種安全的傳輸協議,Ubuntu客戶端能夠經過SSH訪問遠程服務器 。SSH的簡介和工做機制可參看上篇文章 SSH簡介及工做機制ubuntu

SSH分客戶端openssh-client和openssh-server安全

若是你只是想登錄別的機器的SSH只須要安裝openssh-client(ubuntu有默認安裝,若是沒有則sudoapt-get install openssh-client),若是要使本機開放SSH服務就須要安裝openssh-server。服務器

1、安裝客戶端

Ubuntu缺省已經安裝了ssh client。ssh

sudo apt-get install ssh  或者 sudo apt-get installopenssh-client工具

 ssh-keygen 加密

(按回車設置默認值).net

按缺省生成id_rsa和id_rsa.pub文件,分別是私鑰和公鑰。rest

說明:若是sudo apt-get insall ssh出錯,沒法安裝可以使用sudo apt-get install openssh-client進行安裝。server

 

假定服務器ip爲192.168.1.1,ssh服務的端口號爲22,服務器上有個用戶爲root;

用ssh登陸服務器的命令爲:

>ssh –p 22 root@192.168.1.1

>輸入root用戶的密碼

 

2、安裝服務端

Ubuntu缺省沒有安裝SSH Server,使用如下命令安裝:

sudo apt-get install openssh-server

而後確認sshserver是否啓動了:(或用「netstat -tlp」命令)

ps -e|grep ssh

若是隻有ssh-agent那ssh-server尚未啓動,須要/etc/init.d/ssh start,若是看到sshd那說明ssh-server已經啓動了。 

若是沒有則能夠這樣啓動:

sudo/etc/init.d/ssh start

  事實上若是沒什麼特別需求,到這裏 OpenSSH Server 就算安裝好了。可是進一步設置一下,可讓 OpenSSH 登陸時間更短,而且更加安全。這一切都是經過修改 openssh 的配置文件 sshd_config 實現的。

 

3、SSH配置

ssh-server配置文件位於/etc/ssh/sshd_config,在這裏能夠定義SSH的服務端口,默認端口是22,你能夠本身定義成其餘端口號,如222。而後重啓SSH服務:

 

[html]  view plain copy
 
  1. sudo /etc/init.d/sshresart  
經過修改配置文件/etc/ssh/sshd_config,能夠改ssh登陸端口和禁止root登陸。改端口能夠防止被端口掃描。

 

 

[html]  view plain copy
 
  1. sudo cp/etc/ssh/sshd_config /etc/ssh/sshd_config.original  
  2. sudochmod a-w /etc/ssh/sshd_config.original  

 

編輯配置文件:

 

[html]  view plain copy
 
  1. gedit /etc/ssh/sshd_config  

找到#Port 22,去掉註釋,修改爲一個五位的端口:

Port 22333

找到#PermitRootLogin yes,去掉註釋,修改成:

PermitRootLogin no

配置完成後重起:

 

[html]  view plain copy
 
  1. sudo/etc/init.d/ssh restart  
[html]  view plain copy
 
  1.   

 

4、SSH服務命令

中止服務:sudo /etc/init.d/ssh stop

啓動服務:sudo /etc/init.d/ssh start

重啓服務:sudo /etc/init.d/sshresart

斷開鏈接:exit

登陸:sshroot@192.168.0.100 

                 root爲192.168.0.100機器上的用戶,須要輸入密碼。

 

5、SSH登陸命令

經常使用格式:ssh [-llogin_name] [-p port] [user@]hostname

更詳細的能夠用ssh -h查看。

舉例

不指定用戶:

 

[html]  view plain copy
 
  1. ssh 192.168.0.1  

 

 

指定用戶:

 

[html]  view plain copy
 
  1. ssh -l root 192.168.0.1  
  2. ssh root@192.168.0.1   

 

若是修改過ssh登陸端口的能夠:

 

[html]  view plain copy
 
  1. ssh -p 22333 192.168.0.111  
  2. ssh -l root -p 22333 216.230.230.105  
  3. ssh -p 22333 root@216.230.230.105  

 

 

6、提升登陸速度

  在遠程登陸的時候可能會發現,在輸入完用戶名後須要等很長一段時間纔會提示輸入密碼。其實這是因爲 sshd 須要反查客戶端的 dns 信息致使的。能夠經過禁用這個特性來大幅提升登陸的速度。首先,打開 sshd_config 文件:

 

[html]  view plain copy
 
  1. sudo nano /etc/ssh/sshd_config  


  找到 GSSAPI options 這一節,將下面兩行註釋掉:

 

  #GSSAPIAuthentication yes #GSSAPIDelegateCredentials no而後從新啓動 ssh 服務便可:

 

[html]  view plain copy
 
  1. sudo /etc/init.d/ssh restart  

 

  再登陸試試,應該很是快了吧

 

 

7、利用 PuTTy 經過證書認證登陸服務器

  SSH 服務中,全部的內容都是加密傳輸的,安全性基本有保證。可是若是能使用證書認證的話,安全性將會更上一層樓,並且通過必定的設置,還能實現證書認證自動登陸的效果。

  首先修改 sshd_config 文件,開啓證書認證選項:

  RSAAuthentication yes PubkeyAuthentication yesAuthorizedKeysFile %h/.ssh/authorized_keys修改完成後從新啓動 ssh 服務。

  下一步咱們須要爲 SSH 用戶創建私鑰和公鑰。首先要登陸到須要創建密鑰的帳戶下,這裏注意退出 root 用戶,須要的話用 su 命令切換到其它用戶下。而後運行:

 

[html]  view plain copy
 
  1. ssh-keygen  


  這裏,咱們將生成的 key 存放在默認目錄下便可。創建的過程當中會提示輸入 passphrase,這至關於給證書加個密碼,也是提升安全性的措施,這樣即便證書不當心被人拷走也不怕了。固然若是這個留空的話,後面便可實現 PuTTy 經過證書認證的自動登陸。

 

  ssh-keygen 命令會生成兩個密鑰,首先咱們須要將公鑰更名留在服務器上:

 

[html]  view plain copy
 
  1. cd ~/.ssh mv id_rsa.pub authorized_keys  


        而後將私鑰 id_rsa 從服務器上覆製出來,並刪除掉服務器上的 id_rsa 文件。

 

  服務器上的設置就作完了,下面的步驟須要在客戶端電腦上來作。首先,咱們須要將 id_rsa 文件轉化爲 PuTTy 支持的格式。這裏咱們須要利用 PuTTyGEN 這個工具:

  點擊 PuTTyGen 界面中的 Load 按鈕,選擇 id_rsa 文件,輸入 passphrase(若是有的話),而後再點擊 Save PrivateKey 按鈕,這樣 PuTTy 接受的私鑰就作好了。

  打開 PuTTy,在 Session 中輸入服務器的 IP 地址,在 Connection->SSH->Auth 下點擊 Browse 按鈕,選擇剛纔生成好的私鑰。而後回到 Connection 選項,在 Auto-login username 中輸入證書所屬的用戶名。回到 Session 選項卡,輸入個名字點 Save 保存下這個 Session。點擊底部的 Open 應該就能夠經過證書認證登陸到服務器了。若是有 passphrase 的話,登陸過程當中會要求輸入 passphrase,不然將會直接登陸到服務器上,很是的方便。 

相關文章
相關標籤/搜索