亚洲欧美精品沙发,日韩在线精品视频,亚洲Av每日更新在线观看,亚洲国产另类一区在线5

<pre id="hdphd"></pre>

  • <div id="hdphd"><small id="hdphd"></small></div>
      學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 操作系統(tǒng) > Linux教程 > linux ssh使用深度解析

      linux ssh使用深度解析

      時(shí)間: 志藝942 分享

      linux ssh使用深度解析

        SSH的主要目的是用來(lái)取代傳統(tǒng)的telnet和R系列命令(rlogin,rsh,rexec等)遠(yuǎn)程登陸和遠(yuǎn)程執(zhí)行命令的工具,實(shí)現(xiàn)對(duì)遠(yuǎn)程登陸和遠(yuǎn)程執(zhí)行命令加密。接下來(lái)是小編為大家收集的linux ssh使用深度解析,歡迎大家閱讀:

        linux ssh使用深度解析

        Communications 軟件。前者是OpenBSD組織開(kāi)發(fā)的一款免費(fèi)的SSH軟件,后者是商業(yè)軟件,因此在linux、FreeBSD、OpenBSD、NetBSD等免費(fèi)類(lèi)UNIX系統(tǒng)種,通暢都使用OpenSSH作為SSH協(xié)議的實(shí)現(xiàn)軟件。因此,本文重點(diǎn)介紹一下OpenSSH的使用。需要注意的是OpenSSH和SSH Communications的登陸公鑰/私鑰的格式是不同的,如果想用SSH Communications產(chǎn)生的私鑰/公鑰對(duì)來(lái)登入到使用OpenSSH的linux系統(tǒng)需要對(duì)公鑰/私鑰進(jìn)行格式轉(zhuǎn)換。

        在出現(xiàn)SSH之前,系統(tǒng)管理員需要登入遠(yuǎn)程服務(wù)器執(zhí)行系統(tǒng)管理任務(wù)時(shí),都是用telnet來(lái)實(shí)現(xiàn)的,telnet協(xié)議采用明文密碼傳送,在傳送過(guò)程中對(duì)數(shù)據(jù)也不加密,很容易被不懷好意的人在網(wǎng)絡(luò)上監(jiān)聽(tīng)到密碼。同樣,在SSH工具出現(xiàn)之前R系列命令也很流行(由于這些命令都以字母r開(kāi)頭,故把這些命令合稱(chēng)為R系列命令R是remote的意思),比如rexec是用來(lái)執(zhí)行遠(yuǎn)程服務(wù)器上的命令的,和telnet的區(qū)別是telnet需要先登陸遠(yuǎn)程服務(wù)器再實(shí)行相關(guān)的命令,而R系列命令可以把登陸和執(zhí)行命令并登出系統(tǒng)的操作整合在一起。這樣就不需要為在遠(yuǎn)程服務(wù)器上執(zhí)行一個(gè)命令而特地登陸服務(wù)器了。

        SSH是一種加密協(xié)議,不僅在登陸過(guò)程中對(duì)密碼進(jìn)行加密傳送,而且對(duì)登陸后執(zhí)行的命令的數(shù)據(jù)也進(jìn)行加密,這樣即使別人在網(wǎng)絡(luò)上監(jiān)聽(tīng)并截獲了你的數(shù)據(jù)包,他也看不到其中的內(nèi)容。OpenSSH已經(jīng)是目前大多數(shù)linux和BSD操作系統(tǒng)(甚至cygwin)的標(biāo)準(zhǔn)組件,因此關(guān)于如何安裝OpenSSH本文就不再敘述了,如果不出意外,你的系統(tǒng)上必定已經(jīng)安裝好了OpenSSH。

        OpenSSH軟件包包含以下命令:

        sshd ―― SSH服務(wù)端程序

        sftp-server ―― SFTP服務(wù)端程序(類(lèi)似FTP但提供數(shù)據(jù)加密的一種協(xié)議)

        scp ―― 非交互式sftp-server的客戶(hù)端,用來(lái)向服務(wù)器上傳/下載文件

        sftp ―― 交互式sftp-server客戶(hù)端,用法和ftp命令一樣。

        slogin ―― ssh的別名

        ssh ―― SSH協(xié)議的客戶(hù)端程序,用來(lái)登入遠(yuǎn)程系統(tǒng)或遠(yuǎn)程執(zhí)行命令

        ssh-add ―― SSH代理相關(guān)程序,用來(lái)向SSH代理添加dsa key

        ssh-agent ―― ssh代理程序

        ssh-keyscan ―― ssh public key 生成器

        ssh登陸

        SSH最常用的使用方式是代替telnet進(jìn)行遠(yuǎn)程登陸。不同于telnet的密碼登陸,SSH還同時(shí)支持Publickey、Keybord Interactive、GSSAPI等多種登入方式,不像telnet那樣只有輸入系統(tǒng)密碼一種途徑。目前最常用的登陸方式還是傳統(tǒng)的Password方式和Publickey方式登陸。下面以Redhat AS4為例,舉例說(shuō)明這兩種登陸方式的用法。

        [root@mail ~]# ssh 172.18.6.227

        The authenticity of host ’172.18.6.227 (172.18.6.227)’ can’t be established.

        RSA key fingerprint is 43:80:f2:e1:9b:b6:6e:c0:e2:dd:57:8f:ed:89:b3:81.

        Are you sure you want to continue connecting (yes/no)? yes

        Warning: Permanently added ’172.18.6.227′ (RSA) to the list of known hosts.

        root@172.18.6.227‘s password:

        Last login: Thu Jul 12 18:47:47 2007 from 172.18.6.130

        [root@qmail ~]#

        第一次登陸后,ssh就會(huì)把登陸的ssh指紋存放在用戶(hù)home目錄的.ssh目錄的know_hosts文件中,如果遠(yuǎn)程系統(tǒng)重裝過(guò)系統(tǒng),ssh指紋已經(jīng)改變,你需要把 .ssh 目錄下的know_hosts中的相應(yīng)指紋刪除,再登陸回答yes,方可登陸。請(qǐng)注意.ssh目錄是開(kāi)頭是”.”的隱藏目錄,需要ls –a參數(shù)才能看到。而且這個(gè)目錄的權(quán)限必須是700,并且用戶(hù)的home目錄也不能給其他用戶(hù)寫(xiě)權(quán)限,否則ssh服務(wù)器會(huì)拒絕登陸。如果發(fā)生不能登陸的問(wèn)題,請(qǐng)察看服務(wù)器上的日志文件/var/log/secure。通常能很快找到不能登陸的原因。

        ssh遠(yuǎn)程執(zhí)行命令:

        [root@mail ~]# ssh 172.18.6.227 ls -l /

        root@172.18.6.227‘s password:

        total 1244

        drwxr-xr-x 2 root root 4096 Jun 26 04:02 bin

        drwxr-xr-x 4 root root 4096 Mar 29 11:17 boot

        drwxr-xr-x 2 root root 4096 Jan 25 11:26 command

        drwxr-xr-x 15 root root 4096 Jun 12 20:09 data

        drwxr-xr-x 9 root root 5360 Jul 2 13:38 dev

        drwxr-xr-x 87 root root 12288 Jul 11 04:02 etc

        drwxr-xr-x 20 root root 4096 Apr 10 10:54 home

        drwxr-xr-x 2 root root 4096 Aug 13 2004 initrd

        輸入正確的密碼后,ssh會(huì)鏈接遠(yuǎn)程服務(wù)器的sshd服務(wù)器程序,然后執(zhí)行遠(yuǎn)程服務(wù)器上的

        ls –l /命令 ,并把輸入結(jié)果傳到本地服務(wù)器。相當(dāng)于你先登陸到遠(yuǎn)程服務(wù)器,然后再實(shí)行命令ls –l /,最后再登出服務(wù)器。需要提醒的是,如果你需要登陸服務(wù)器并執(zhí)行不止一個(gè)命令,必須要把命令用單引號(hào)或雙引號(hào)引起來(lái):

        ssh 172.18.6.227 “cd /root && ls “

        ssh的遠(yuǎn)程實(shí)行命令的功能是用來(lái)代替原始的R系列命令的,在ssh出現(xiàn)之前系統(tǒng)管理員們不得不用rexec, rsh等不安全的遠(yuǎn)程執(zhí)行命令工具來(lái)完成同樣的操作。這個(gè)功能在管理大批機(jī)器的時(shí)候是非常有用的,比如我要重啟10.0.0.0/24網(wǎng)段內(nèi)所有的服務(wù)器,只要輸入一條命令:

        for i in $(seq 1 254) ; do ssh 10.0.0.${i} reboot ; done

        機(jī)器之間相互認(rèn)證

        就可以完成重啟所有服務(wù)器的操作,也許你會(huì)說(shuō),這要雖然不需要再登陸每一臺(tái)服務(wù)器了,但是還是要每次輸入密碼,多麻煩啊。別急,下面要講的用ssh public key方式登陸就是要解決問(wèn)題。

        采用public key登錄:

        openssh的ssh-keygen命令用來(lái)產(chǎn)生這樣的私鑰和公鑰。

        [root@mail ~]# ssh-keygen -b 1024 -t dsa -C gucuiwen@myserver.com

        Generating public/private dsa key pair.

        提示正在生成,如果選擇4096長(zhǎng)度,可能需要較長(zhǎng)時(shí)間

        Enter file in which to save the key (/root/.ssh/id_dsa):

        #詢(xún)問(wèn)把公鑰和私鑰放在那里,回車(chē)用默認(rèn)位置即可

        Enter passphrase (empty for no passphrase):

        #詢(xún)問(wèn)輸入私鑰密語(yǔ),為了實(shí)現(xiàn)自動(dòng)登陸,應(yīng)該不要密語(yǔ),直接回車(chē)

        Enter same passphrase again:

        #再次提示輸入密語(yǔ),再次直接回車(chē)

        Your identification has been saved in /root/.ssh/id_dsa.

        Your public key has been saved in /root/.ssh/id_dsa.pub.

        #提示公鑰和私鑰已經(jīng)存放在/root/.ssh/目錄下

        The key fingerprint is:

        71:e5:cb:15:d3:8c:05:ed:05:84:85:32:ce:b1:31:ce gucuiwen@myserver.com

        #提示key的指紋

        說(shuō)明:

        -b 1024 采用長(zhǎng)度為1024字節(jié)的公鑰/私鑰對(duì),最長(zhǎng)4096字節(jié),一般1024或2048就可以了,太長(zhǎng)的話(huà)加密解密需要的時(shí)間也長(zhǎng)。

        -t dsa  采用dsa加密方式的公鑰/私鑰對(duì),除了dsa還有rsa方式,rsa方式最短不能小于768字節(jié)長(zhǎng)度。

        -C gucuiwen@myserver.com 對(duì)這個(gè)公鑰/私鑰對(duì)的一個(gè)注釋和說(shuō)明,一般用所有人的郵件代替。可以省略不寫(xiě),更多其他參數(shù)請(qǐng)man ssh-keygen。

        [root@mail ~]# ls -l /root/.ssh

        total 16

        -rw——- 1 root root 668 Jul 12 20:07 id_dsa

        -rw-r–r– 1 root root 611 Jul 12 20:07 id_dsa.pub

        -rw-r–r– 1 root root 222 Jul 12 19:37 known_hosts

        產(chǎn)生的公鑰/私鑰文件在用戶(hù)home目錄的.ssh目錄下,其中id_dsa.pub是公鑰,把產(chǎn)生的公鑰上傳到需要登陸的服務(wù)器的對(duì)應(yīng)用戶(hù)目錄的home目錄的.ssh目錄下,再一次強(qiáng)調(diào)用戶(hù)自己的目錄(home目錄)必須不能有其他人可寫(xiě)的權(quán)限,.ssh目錄的權(quán)限必須是700,即除了用戶(hù)自己,其他人沒(méi)有任何讀寫(xiě)察看該目錄的權(quán)限,否則ssh服務(wù)器會(huì)拒絕登陸。ssh默認(rèn)的公鑰文件是用戶(hù)home目錄下的.ssh目錄下的authorized_keys文件,因此需要把產(chǎn)生的公鑰以這個(gè)文件名放到服務(wù)器的/root/.ssh/目錄下,這個(gè)文件中可以存放多個(gè)客戶(hù)端的公鑰文件,就好比一個(gè)大門(mén)上可以上很多鎖,可以有不同的鑰匙來(lái)嘗試開(kāi)鎖,只要有一個(gè)鎖被打開(kāi)了,門(mén)就可以打開(kāi)了。放到服務(wù)器上應(yīng)該是這樣子的:

        私鑰必須是600權(quán)限,否則ssh服務(wù)器會(huì)拒絕用戶(hù)登陸。

        大致就是這個(gè)樣子了。現(xiàn)把/etc/ssh/ssh_config 和 /etc/ssh/sshd_config的配置說(shuō)下。

        /etc/ssh/ssh_config: 介紹

        Host *

        選項(xiàng)“Host”只對(duì)能夠匹配后面字串的計(jì)算機(jī)有效。“*”表示所有的計(jì)算機(jī)。

        ForwardAgent no

        “ForwardAgent”設(shè)置連接是否經(jīng)過(guò)驗(yàn)證代理(如果存在)轉(zhuǎn)發(fā)給遠(yuǎn)程計(jì)算機(jī)。

        ForwardX11 no

        “ForwardX11”設(shè)置X11連接是否被自動(dòng)重定向到安全的通道和顯示集(DISPLAY set)。

        RhostsAuthentication no

        “RhostsAuthentication”設(shè)置是否使用基于rhosts的安全驗(yàn)證。

        RhostsRSAAuthentication no

        “RhostsRSAAuthentication”設(shè)置是否使用用RSA算法的基于rhosts的安全驗(yàn)證。

        RSAAuthentication yes

        “RSAAuthentication”設(shè)置是否使用RSA算法進(jìn)行安全驗(yàn)證。

        PasswordAuthentication yes

        “PasswordAuthentication”設(shè)置是否使用口令驗(yàn)證。

        FallBackToRsh no

        “FallBackToRsh”設(shè)置如果用ssh連接出現(xiàn)錯(cuò)誤是否自動(dòng)使用rsh。

        UseRsh no

        “UseRsh”設(shè)置是否在這臺(tái)計(jì)算機(jī)上使用“rlogin/rsh”。

        BatchMode no

        “BatchMode”如果設(shè)為“yes”,passphrase/password(交互式輸入口令)的提示將被禁止。當(dāng)不能交互式輸入口令的時(shí)候,這個(gè)選項(xiàng)對(duì)腳本文件和批處理任務(wù)十分有用。

        CheckHostIP yes

        “CheckHostIP”設(shè)置ssh是否查看連接到服務(wù)器的主機(jī)的IP地址以防止DNS欺騙。建議設(shè)置為“yes”。

        StrictHostKeyChecking no

        “StrictHostKeyChecking”如果設(shè)置成“yes”,ssh就不會(huì)自動(dòng)把計(jì)算機(jī)的密匙加入“$HOME/.ssh/known_hosts”文件,并且一旦計(jì)算機(jī)的密匙發(fā)生了變化,就拒絕連接。

        IdentityFile ~/.ssh/identity

        “IdentityFile”設(shè)置從哪個(gè)文件讀取用戶(hù)的RSA安全驗(yàn)證標(biāo)識(shí)。

        Port 22

        “Port”設(shè)置連接到遠(yuǎn)程主機(jī)的端口。

        Cipher blowfish

        “Cipher”設(shè)置加密用的密碼。

        EscapeChar ~

        “EscapeChar”設(shè)置escape字符。

        /etc/ssh/sshd_config:介紹

        Port 22

        “Port”設(shè)置sshd監(jiān)聽(tīng)的端口號(hào)。

        ListenAddress 192.168.1.1

        “ListenAddress”設(shè)置sshd服務(wù)器綁定的IP地址。

        HostKey /etc/ssh/ssh_host_key

        “HostKey”設(shè)置包含計(jì)算機(jī)私人密匙的文件。

        ServerKeyBits 1024

        “ServerKeyBits”定義服務(wù)器密匙的位數(shù)。

        LoginGraceTime 600

        “LoginGraceTime”設(shè)置如果用戶(hù)不能成功登錄,在切斷連接之前服務(wù)器需要等待的時(shí)間(以秒為單位)。

        KeyRegenerationInterval 3600

        “KeyRegenerationInterval”設(shè)置在多少秒之后自動(dòng)重新生成服務(wù)器的密匙(如果使用密匙)。重新生成密匙是為了防止用盜用的密匙解密被截獲的信息。

        PermitRootLogin no

        “PermitRootLogin”設(shè)置root能不能用ssh登錄。這個(gè)選項(xiàng)一定不要設(shè)成“yes”。

        IgnoreRhosts yes

        “IgnoreRhosts”設(shè)置驗(yàn)證的時(shí)候是否使用“rhosts”和“shosts”文件。

        IgnoreUserKnownHosts yes

        “IgnoreUserKnownHosts”設(shè)置ssh daemon是否在進(jìn)行RhostsRSAAuthentication安全驗(yàn)證的時(shí)候忽略用戶(hù)的“$HOME/.ssh/known_hosts”

        StrictModes yes

        “StrictModes”設(shè)置ssh在接收登錄請(qǐng)求之前是否檢查用戶(hù)家目錄和rhosts文件的權(quán)限和所有權(quán)。這通常是必要的,因?yàn)樾率纸?jīng)常會(huì)把自己的目錄和文件設(shè)成任何人都有寫(xiě)權(quán)限。

        X11Forwarding no

        “X11Forwarding”設(shè)置是否允許X11轉(zhuǎn)發(fā)。

        PrintMotd yes

        “PrintMotd”設(shè)置sshd是否在用戶(hù)登錄的時(shí)候顯示“/etc/motd”中的信息。

        SyslogFacility AUTH

        “SyslogFacility”設(shè)置在記錄來(lái)自sshd的消息的時(shí)候,是否給出“facility code”。

        LogLevel INFO

        “LogLevel”設(shè)置記錄sshd日志消息的層次。INFO是一個(gè)好的選擇。查看sshd的man幫助頁(yè),已獲取更多的信息。

        RhostsAuthentication no

        “RhostsAuthentication”設(shè)置只用rhosts或“/etc/hosts.equiv”進(jìn)行安全驗(yàn)證是否已經(jīng)足夠了。

        RhostsRSAAuthentication no

        “RhostsRSA”設(shè)置是否允許用rhosts或“/etc/hosts.equiv”加上RSA進(jìn)行安全驗(yàn)證。

        RSAAuthentication yes

        “RSAAuthentication”設(shè)置是否允許只有RSA安全驗(yàn)證。

        PasswordAuthentication yes

        “PasswordAuthentication”設(shè)置是否允許口令驗(yàn)證。

        PermitEmptyPasswords no

        “PermitEmptyPasswords”設(shè)置是否允許用口令為空的帳號(hào)登錄。

        AllowUsers admin

        “AllowUsers”的后面可以跟著任意的數(shù)量的用戶(hù)名的匹配串(patterns)或user@host這樣的匹配串,這些字符串用空格隔開(kāi)。主機(jī)名可以是DNS名或IP地址。

        將SSH2兼容格式的公鑰轉(zhuǎn)換成為Openssh兼容格式

        ssh-keygen -i -f Identity.pub >> /root/.ssh/authorized_keys2

        
      看了“linux ssh使用深度解析”還想看:

      1.linux命令 ssh使用解析

      2.LINUX操作系統(tǒng)SSH的使用方法

      3.linux ssh 別名登錄教程

      4.ssh遠(yuǎn)程執(zhí)行命令方法和Shell腳本實(shí)例

      5.linux命令ssh遠(yuǎn)程登錄命令簡(jiǎn)單實(shí)例

      2961649