Ubuntu環境下SSH的安裝及使用


Ubuntu環境下SSH的安裝及使用

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

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

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

一、安裝客戶端

Ubuntu缺省已經安裝了ssh client。

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

 ssh-keygen 

(按回車設置默認值)

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

說明:如果sudo apt-get insall ssh出錯,無法安裝可使用sudo apt-get install openssh-client進行安裝。

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

用ssh登錄服務器的命令為:

>ssh –p 22 root@192.168.1.1

>輸入root用戶的密碼

二、安裝服務端

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 實現的。

三、SSH配置

ssh-server配置文件位於/etc/ssh/sshd_config,在這里可以定義SSH的服務端口,默認端口是22,你可以自己定義成其他端口號,如222。然后重啟SSH服務:

sudo /etc/init.d/sshresart

通過修改配置文件/etc/ssh/sshd_config,可以改ssh登錄端口和禁止root登錄。改端口可以防止被端口掃描。

     sudo cp/etc/ssh/sshd_config /etc/ssh/sshd_config.original sudochmod a-w /etc/ssh/sshd_config.original

編輯配置文件:

gedit /etc/ssh/sshd_config

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

Port 22333

找到#PermitRootLogin yes,去掉注釋,修改為:

PermitRootLogin no

配置完成后重起:

    sudo/etc/init.d/ssh restart

四、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機器上的用戶,需要輸入密碼。

五、SSH登錄命令

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

更詳細的可以用ssh -h查看。

舉例

不指定用戶:

ssh 192.168.0.1

指定用戶:

ssh -l root 192.168.0.1 ssh root@192.168.0.1 

如果修改過ssh登錄端口的可以:

ssh -p 22333 192.168.0.111 ssh -l root -p 22333 216.230.230.105 ssh -p 22333 root@216.230.230.105

六、提高登錄速度

  在遠程登錄的時候可能會發現,在輸入完用戶名后需要等很長一段時間才會提示輸入密碼。其實這是由於 sshd 需要反查客戶端的 dns 信息導致的。可以通過禁用這個特性來大幅提高登錄的速度。首先,打開 sshd_config 文件:

  sudo nano /etc/ssh/sshd_config

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

  #GSSAPIAuthentication yes #GSSAPIDelegateCredentials no然后重新啟動 ssh 服務即可:

  sudo /etc/init.d/ssh restart

  再登錄試試,應該非常快了吧

七、利用 PuTTy 通過證書認證登錄服務器

  SSH 服務中,所有的內容都是加密傳輸的,安全性基本有保證。但是如果能使用證書認證的話,安全性將會更上一層樓,而且經過一定的設置,還能實現證書認證自動登錄的效果。

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

  RSAAuthentication yes PubkeyAuthentication yesAuthorizedKeysFile %h/.ssh/authorized_keys修改完成后重新啟動 ssh 服務。

  下一步我們需要為 SSH 用戶建立私鑰和公鑰。首先要登錄到需要建立密鑰的賬戶下,這里注意退出 root 用戶,需要的話用 su 命令切換到其它用戶下。然后運行:

  ssh-keygen

  這里,我們將生成的 key 存放在默認目錄下即可。建立的過程中會提示輸入 passphrase,這相當於給證書加個密碼,也是提高安全性的措施,這樣即使證書不小心被人拷走也不怕了。當然如果這個留空的話,后面即可實現 PuTTy 通過證書認證的自動登錄。

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

  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,否則將會直接登錄到服務器上,非常的方便。 

 

轉載 https://cloud.tencent.com/developer/article/1751149


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM