ssh服務(基礎篇)

一、準備

    ssh是現在Linux系統中,最經常使用到的遠程登入服務。ssh不僅僅只是提供對遠程聯機數據包加密的技術,而且提供了類似於ftpcp的功能。在開始介紹服務之前請確認在您的機器上已經安裝了ssh,可以通過“rpm -qa | grep ssh”來查看(目前常用的是openssh)。我下面所做的測試均在:紅旗Asianux3.0

二、啓動服務及相關操作

服務器端:

[root@redflag ~]# service sshd start #啓動ssh服務
    
客戶端:

1.   遠程聯機

[root@redflag ~] # ssh IP/hostname 或者 ssh 用戶名@IP/hostname

會出現:Are you sure you want to continue connecting (yes/no)? yes <==請輸入 yes  

Warning: Permanently added 'test.linux.org,192.168.0.100' (RSA) to the list of known hosts. 

[email protected]'s password:    <==請輸入root這個用戶的密碼!

2.   sftp

ssh服務中提供了類似於ftp的功能。

[root@redflag ~] # sftp IP/hostname 或者 sftp 用戶名@IP/hostname

[email protected]'s password:    <==請輸入root這個用戶的密碼 

sftp>  <==等待輸入命令

可以採用FTP模式下的操作方法。下面來談一下對應的命令:

            變換目錄

cd PATH

列出目前所在目錄下的文件或目錄

ls dir

建立/刪除目錄

mkdir/rmdir  directory

顯示目前所在的目錄

pwd

刪除文件或目錄

rm

將文件由本機上傳到遠程主機

put [本機目錄或文件] [遠程

put [本機目錄或文件

如果是這種格式,則文件會放置到目前遠程主機的當前目錄下

將文件由遠程主機下載回來

get [遠程主機目錄或文件] [本機
get [
遠程主機目錄或文件
若是這種格式,則文件會放在目前本機所在的目錄當中!可以使用通配符,例如: 
get * 
get *.rpm 
也是可以的格式

顯示命令的作用

bye

離開

  scp
  
ssh服務中提供了類似於cp命令一樣的文件複製功能,即scp
 [root@redflag ~] # scp /etc/crontab [email protected]:/home/denis # 將數據由本機上傳到遠程主機上

[root@redflag ~] # scp [email protected]:~/.bashrc  .   # 將數據由遠程主機下載到本機上

三、有關設置


        1.關於server keys的記錄數據:~/.ssh/known_hosts


       當客戶端接受來自server端的Public key之後,會比對這個Key的正確性,而對比的文件是~/.ssh/known_hosts。若是接受到的這個public key並沒有被記錄在該文件中,要求你回答yes/no的那個信息纔會出現,而你回答yes後該public key信息就會被記錄起來,以留待下次登錄通一臺主機是檢查用。如果server key~/.ssh/known_hosts比對成功,那麼就會直接進入等待密碼輸入的畫面,那就不必每次都得要輸入(yes/no)了。之前我在測試ssh時看到

           [root@redflag ~] # ssh 192.168.0.18 

  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 

  @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @ 

  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 

  IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! 

  Someone could be eavesdropping on you right now (man-in-the-middle attack)! 

  It is also possible that the RSA host key has just been changed. 

  The fingerprint for the RSA key sent by the remote host is 

  6e:1a:60:d0:ee:d0:7c:91:df:94:de:09:35:7b:08:ba. 

  Please contact your system administrator. 

  Add correct host key in /root/.ssh/known_hosts to get rid of this message. 

  Offending key in /root/.ssh/known_hosts:8 

  RSA host key for hostname has changed and you have requested strict checking. 

  Host key verification failed.

  這個錯誤信息在告訴你,上次登入的遠程SSH主機的Key已經被改過了(可能是服務器端重新安裝/更新等),所以無法繼續登錄。解決方法:將/.ssh/know_host中,將欲連接的主機名稱的Key刪除,就可以重新聯機了。

2.ssh的配置文件

    所有的SSH相關設置都放在/etc/ssh/sshd_config裏。下面就介紹一下主要使用的相關內容:

    Port 22      # SSH默認使用22這個port,也可以使用多個port

    Protocol 2,1  # 選擇SSH協議的版本,建議直接使用Protocol 2即可

    ListenAddress 0.0.0.0  # 監聽的主機適配卡。例如ListenAddress 192.168.0.100那麼只能該IP聯機。如果不設置的話,則默認所有接口都接受SSH

    PermitRootLogin  no   # 是否允許root登錄。

    AuthorizedKeysFile    .ssh/authorized_keys  #該設置作用,若要使用不需要密碼登錄的賬號,那麼這個賬號的存放文件所在文件名

    DenyUsers  # 不允許某個用戶登錄,DenyUsers test (該賬號無法登錄)

    DenyGroups  # 不允許某個羣組登錄;例如我們將我們不希望遠程聯機的多個用戶可以歸納在一個組之下,並在DenyGroups後加入該組名就可以實現了。


       以上只是介紹了SSH配置文件內容中的一部分。注意當你更改過配置文件之後,需要將該服務重新系統之後設置纔會生效。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章