日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

使用SSH+SFTP操作终端全解析,告别XShell

發(fā)布時(shí)間:2025/4/16 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用SSH+SFTP操作终端全解析,告别XShell 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.前言

在Windows系統(tǒng)下操作遠(yuǎn)程服務(wù)器的方式很多,比如XShell+XFTP組合,亦或是PuTTY+WinSCP組合,但在Mac系統(tǒng)下登陸遠(yuǎn)程服務(wù)器,并沒(méi)有這些工具供我們使用。相比較而言,在Mac下更多的是依賴(lài)終端輸入SSH命令登陸遠(yuǎn)程服務(wù)器。

使用SSH命令行的好處就是可以近距離接觸底層,用的越多,用的越溜,對(duì)SSH的原理就越了解。相反,使用現(xiàn)成的SSH工具(PuTTY、XShell),我們其實(shí)并不會(huì)有涉及使用ssh命令的機(jī)會(huì),對(duì)大多數(shù)人而言,怕是只知道最基本的ssh root@ip。

本文將帶大家了解ssh的原理與使用技巧,幫助更多終端愛(ài)好者更方便更隨心所欲的使用終端。

2.SSH是什么

SSH服務(wù)其實(shí)是一個(gè)守護(hù)進(jìn)程(demon),系統(tǒng)后臺(tái)會(huì)監(jiān)聽(tīng)客戶(hù)端的連接,ssh服務(wù)端的進(jìn)程名為sshd,負(fù)責(zé)實(shí)時(shí)監(jiān)聽(tīng)客戶(hù)端的請(qǐng)求(IP 22端口),包括公共秘鑰等交換等信息。SSH服務(wù)端由2部分組成: openssh(提供ssh服務(wù))、openssl(提供加密的程序)。

3.對(duì)稱(chēng)加密和非對(duì)稱(chēng)加密

在學(xué)習(xí)SSH的工作機(jī)制之前,我們需要了解對(duì)稱(chēng)加密和非對(duì)稱(chēng)加密的原理。

對(duì)稱(chēng)加密

所謂對(duì)稱(chēng)加密,是采用對(duì)稱(chēng)密碼編碼技術(shù)的加密措施,它的特點(diǎn)是文件加密和解密都是使用相同的密鑰。

這種方法在密碼學(xué)中叫做對(duì)稱(chēng)加密算法,對(duì)稱(chēng)加密算法使用起來(lái)簡(jiǎn)單快捷,密鑰較短,且破譯困難,除了數(shù)據(jù)加密標(biāo)準(zhǔn)(DES),另一個(gè)對(duì)稱(chēng)密鑰加密系統(tǒng)是國(guó)際數(shù)據(jù)加密算法(IDEA),它比DES的加密性好,而且對(duì)計(jì)算機(jī)功能要求也沒(méi)有那么高。

非對(duì)稱(chēng)加密

與對(duì)稱(chēng)加密算法不同,非對(duì)稱(chēng)加密算法需要兩個(gè)密鑰:公開(kāi)密鑰(publickey)和私有密鑰(privatekey)。

公開(kāi)密鑰與私有密鑰是一對(duì),如果用公開(kāi)密鑰對(duì)數(shù)據(jù)進(jìn)行加密,只有用對(duì)應(yīng)的私有密鑰才能解密;如果用私有密鑰對(duì)數(shù)據(jù)進(jìn)行加密,那么只有用對(duì)應(yīng)的公開(kāi)密鑰才能解密。

因?yàn)榧用芎徒饷苁褂玫氖莾蓚€(gè)不同的密鑰,所以這種算法叫作非對(duì)稱(chēng)加密算法。

3.SSH如何工作

了解了對(duì)稱(chēng)加密和非對(duì)稱(chēng)加密是什么之后,再來(lái)了解SSH如何使用非對(duì)稱(chēng)加密技術(shù),大致流程如下:

在服務(wù)器啟動(dòng)的時(shí)候會(huì)產(chǎn)生一個(gè)密鑰(也就是768bit公鑰),本地的ssh客戶(hù)端發(fā)送連接請(qǐng)求到ssh服務(wù)器,服務(wù)器檢查連接點(diǎn)客戶(hù)端發(fā)送的數(shù)據(jù)和IP地址,確認(rèn)合法后發(fā)送密鑰(768bits公鑰)給客戶(hù)端,此時(shí)客戶(hù)端將本地私鑰(256bit)和服務(wù)器的公鑰(768bit)結(jié)合成密鑰對(duì)key(1024bit),發(fā)回給服務(wù)器端,服務(wù)端利用自己的私鑰解密,讀取出客戶(hù)端的本地私鑰,建立連接通過(guò)key-pair數(shù)據(jù)傳輸,在此之后,服務(wù)端與客戶(hù)端就愉快的使用客戶(hù)端私鑰進(jìn)行溝通。

3.SSH命令詳解

SSH命令最簡(jiǎn)單的用法只需要指定用戶(hù)名和主機(jī)名參數(shù)即可,主機(jī)名可以是 IP 地址或者域名。

ssh root@192.168.0.1

指定端口號(hào)

SSH 默認(rèn)連接到目標(biāo)主機(jī)的 22 端口上,我們可以使用 -p 選項(xiàng)指定端口號(hào)。

ssh -p 22 root@192.168.0.1

追加命令

使用 SSH 在遠(yuǎn)程主機(jī)執(zhí)行一條命令并顯示到本地,然后繼續(xù)本地工作,只需要直接連接并在后面加上要執(zhí)行的命令。

ssh -p 22 root@192.168.0.1 ls -l

圖形界面

在遠(yuǎn)程主機(jī)運(yùn)行一個(gè)圖形界面的程序,只需使用SSH的-X選項(xiàng),然后主機(jī)就會(huì)開(kāi)啟 X11轉(zhuǎn)發(fā)功能。

ssh -X 22 root@192.168.0.1

綁定源地址

如果你的客戶(hù)端有多于兩個(gè)以上的 IP 地址,你就不可能分得清楚在使用哪一個(gè) IP 連接到 SSH 服務(wù)器。為了解決這種情況,我們可以使用 -b 選項(xiàng)來(lái)指定一個(gè)IP 地址。這個(gè) IP 將會(huì)被使用做建立連接的源地址。

ssh -b 192.168.0.200 root@192.168.0.103

對(duì)所有數(shù)據(jù)請(qǐng)求壓縮

使用 -C 選項(xiàng),所有通過(guò) SSH 發(fā)送或接收的數(shù)據(jù)將會(huì)被壓縮,并且仍然是加密的。

ssh -C root@192.168.0.103

打開(kāi)調(diào)試模式

因?yàn)槟承┰?#xff0c;我們想要追蹤調(diào)試我們建立的 SSH 連接情況。SSH 提供的 -v 選項(xiàng)參數(shù)正是為此而設(shè)的。其可以看到在哪個(gè)環(huán)節(jié)出了問(wèn)題。

ssh -v root@192.168.0.103

4.SSH免密登陸

通過(guò)SSH命令登陸遠(yuǎn)程服務(wù)器需要手動(dòng)的每次輸入密碼,解決這個(gè)問(wèn)題其實(shí)非常簡(jiǎn)單,通過(guò) ssh-keygen 生成本地公鑰和私鑰,將公鑰Copy到遠(yuǎn)程服務(wù)器就可以。

1.構(gòu)建 SSH 密鑰對(duì)

使用 ssh-keygen -t +算法名,現(xiàn)在大多數(shù)都使用 RSA 或者 DSA 算法。

如果你在安裝Git時(shí)已經(jīng)做過(guò)此步驟,那么忽略這一步即可。

ssh-keygen -t rsa

2.拷貝本地公鑰給遠(yuǎn)程服務(wù)器

ssh-copy-id root@192.168.25.110

你可以通過(guò)參數(shù) -i 指定公鑰文件

ssh-copy-id -i id_dsa.pub omd@192.168.25.110

3.查看是否已經(jīng)添加了對(duì)應(yīng)主機(jī)的密鑰

使用 -F 選項(xiàng)

ssh-keygen -F 192.168.0.1

4.刪除主機(jī)密鑰

使用-R選項(xiàng),也可以在 ~/.ssh/known_hosts 文件中手動(dòng)刪除

ssh-keygen -R 192.168.0.1

5.如何配置 SSH

SSH 的配置文件在 /etc/ssh/sshd_config 中,你可以看到端口號(hào),空閑超時(shí)時(shí)間等配置項(xiàng)。

cat /etc/ssh/sshd_config

/etc/ssh/sshd_config 配置文件詳細(xì)說(shuō)明

#############1. 關(guān)于 SSH Server 的整體設(shè)定############## #Port 22 ##port用來(lái)設(shè)置sshd監(jiān)聽(tīng)的端口,為了安全起見(jiàn),建議更改默認(rèn)的22端口為5位以上陌生端口 #Protocol 2,1 Protocol 2 ##設(shè)置協(xié)議版本為SSH1或SSH2,SSH1存在漏洞與缺陷,選擇SSH2 #AddressFamily any #ListenAddress 0.0.0.0 #ListenAddress用來(lái)設(shè)置sshd服務(wù)器綁定的IP地址 ##監(jiān)聽(tīng)的主機(jī)適配卡,舉個(gè)例子來(lái)說(shuō),如果您有兩個(gè) IP, 分別是 192.168.0.11 及 192.168.2.20 ,那么只想要 ###開(kāi)放 192.168.0.11 時(shí),就可以設(shè)置為:ListenAddress 192.168.0.11 ####表示只監(jiān)聽(tīng)來(lái)自 192.168.0.11 這個(gè) IP 的SSH聯(lián)機(jī)。如果不使用設(shè)定的話(huà),則預(yù)設(shè)所有接口均接受 SSH#############2. 說(shuō)明主機(jī)的 Private Key 放置的檔案##########                  #ListenAddress :: ##HostKey用來(lái)設(shè)置服務(wù)器秘鑰文件的路徑 # HostKey for protocol version 1 #HostKey /etc/ssh/ssh_host_key ##設(shè)置SSH version 1 使用的私鑰# HostKeys for protocol version 2 #HostKey /etc/ssh/ssh_host_rsa_key ##設(shè)置SSH version 2 使用的 RSA 私鑰#HostKey /etc/ssh/ssh_host_dsa_key ##設(shè)置SSH version 2 使用的 DSA 私鑰#Compression yes       ##設(shè)置是否可以使用壓縮指令# Lifetime and size of ephemeral version 1 server key #KeyRegenerationInterval 1h ##KeyRegenerationInterval用來(lái)設(shè)置多長(zhǎng)時(shí)間后系統(tǒng)自動(dòng)重新生成服務(wù)器的秘鑰, ###(如果使用密鑰)。重新生成秘鑰是為了防止利用盜用的密鑰解密被截獲的信息。#ServerKeyBits 768 ##ServerKeyBits用來(lái)定義服務(wù)器密鑰的長(zhǎng)度 ###指定臨時(shí)服務(wù)器密鑰的長(zhǎng)度。僅用于SSH-1。默認(rèn)值是 768(位)。最小值是 512 。# Logging # obsoletes QuietMode and FascistLogging #SyslogFacility AUTH SyslogFacility AUTHPRIV ##SyslogFacility用來(lái)設(shè)定在記錄來(lái)自sshd的消息的時(shí)候,是否給出“facility code”#LogLevel INFO ##LogLevel用來(lái)設(shè)定sshd日志消息的級(jí)別#################3.安全認(rèn)證方面的設(shè)定################ #############3.1、有關(guān)安全登錄的設(shè)定############### # Authentication: ##限制用戶(hù)必須在指定的時(shí)限內(nèi)認(rèn)證成功,0 表示無(wú)限制。默認(rèn)值是 120 秒。#LoginGraceTime 2m ##LoginGraceTime用來(lái)設(shè)定如果用戶(hù)登錄失敗,在切斷連接前服務(wù)器需要等待的時(shí)間,單位為妙#PermitRootLogin yes ##PermitRootLogin用來(lái)設(shè)置能不能直接以超級(jí)用戶(hù)ssh登錄,root遠(yuǎn)程登錄Linux很危險(xiǎn),建議注銷(xiāo)或設(shè)置為no#StrictModes yes ##StrictModes用來(lái)設(shè)置ssh在接收登錄請(qǐng)求之前是否檢查用戶(hù)根目錄和rhosts文件的權(quán)限和所有權(quán),建議開(kāi)啟 ###建議使用默認(rèn)值"yes"來(lái)預(yù)防可能出現(xiàn)的低級(jí)錯(cuò)誤。#RSAAuthentication yes ##RSAAuthentication用來(lái)設(shè)置是否開(kāi)啟RSA密鑰驗(yàn)證,只針對(duì)SSH1#PubkeyAuthentication yes ##PubkeyAuthentication用來(lái)設(shè)置是否開(kāi)啟公鑰驗(yàn)證,如果使用公鑰驗(yàn)證的方式登錄時(shí),則設(shè)置為yes#AuthorizedKeysFile .ssh/authorized_keys ##AuthorizedKeysFile用來(lái)設(shè)置公鑰驗(yàn)證文件的路徑,與PubkeyAuthentication配合使用,默認(rèn)值是".ssh/authorized_keys"。 ###該指令中可以使用下列根據(jù)連接時(shí)的實(shí)際情況進(jìn)行展開(kāi)的符號(hào): %% 表示'%'、%h 表示用戶(hù)的主目錄、%u 表示該用戶(hù)的用戶(hù)名 ####經(jīng)過(guò)擴(kuò)展之后的值必須要么是絕對(duì)路徑,要么是相對(duì)于用戶(hù)主目錄的相對(duì)路徑。#############3.2、安全驗(yàn)證的設(shè)定############### # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts #RhostsRSAAuthentication no ##是否使用強(qiáng)可信主機(jī)認(rèn)證(通過(guò)檢查遠(yuǎn)程主機(jī)名和關(guān)聯(lián)的用戶(hù)名進(jìn)行認(rèn)證)。僅用于SSH-1。 ###這是通過(guò)在RSA認(rèn)證成功后再檢查 ~/.rhosts 或 /etc/hosts.equiv 進(jìn)行認(rèn)證的。出于安全考慮,建議使用默認(rèn)值"no"。# similar for protocol version 2 #HostbasedAuthentication no ##這個(gè)指令與 RhostsRSAAuthentication 類(lèi)似,但是僅可以用于SSH-2。# Change to yes if you don't trust ~/.ssh/known_hosts for # RhostsRSAAuthentication and HostbasedAuthentication#IgnoreUserKnownHosts no ##IgnoreUserKnownHosts用來(lái)設(shè)置ssh在進(jìn)行RhostsRSAAuthentication安全驗(yàn)證時(shí)是否忽略用戶(hù)的“/$HOME/.ssh/known_hosts”文件 # Don't read the user's ~/.rhosts and ~/.shosts files#IgnoreRhosts yes ##IgnoreRhosts用來(lái)設(shè)置驗(yàn)證的時(shí)候是否使用“~/.rhosts”和“~/.shosts”文件# To disable tunneled clear text passwords, change to no here! #PasswordAuthentication yes ##PasswordAuthentication用來(lái)設(shè)置是否開(kāi)啟密碼驗(yàn)證機(jī)制,如果用密碼登錄系統(tǒng),則設(shè)置yes#PermitEmptyPasswords no #PermitEmptyPasswords用來(lái)設(shè)置是否允許用口令為空的賬號(hào)登錄系統(tǒng),設(shè)置no#PasswordAuthentication yes ##是否允許使用基于密碼的認(rèn)證。默認(rèn)為"yes"。 PasswordAuthentication yes# Change to no to disable s/key passwords ##設(shè)置禁用s/key密碼 #ChallengeResponseAuthentication yes ##ChallengeResponseAuthentication 是否允許質(zhì)疑-應(yīng)答(challenge-response)認(rèn)證 ChallengeResponseAuthentication no########3.3、與 Kerberos 有關(guān)的參數(shù)設(shè)定,指定是否允許基于Kerberos的用戶(hù)認(rèn)證######## #Kerberos options #KerberosAuthentication no ##是否要求用戶(hù)為PasswdAuthentication提供的密碼必須通過(guò)Kerberos KDC認(rèn)證,要使用Kerberos認(rèn)證, ###服務(wù)器必須提供一個(gè)可以校驗(yàn)KDC identity的Kerberos servtab。默認(rèn)值為no#KerberosOrLocalPasswd yes ##如果Kerberos密碼認(rèn)證失敗,那么該密碼還將要通過(guò)其他的的認(rèn)證機(jī)制,如/etc/passwd ###在啟用此項(xiàng)后,如果無(wú)法通過(guò)Kerberos驗(yàn)證,則密碼的正確性將由本地的機(jī)制來(lái)決定,如/etc/passwd,默認(rèn)為yes#KerberosTicketCleanup yes ##設(shè)置是否在用戶(hù)退出登錄是自動(dòng)銷(xiāo)毀用戶(hù)的ticket#KerberosGetAFSToken no ##如果使用AFS并且該用戶(hù)有一個(gè)Kerberos 5 TGT,那么開(kāi)啟該指令后, ###將會(huì)在訪(fǎng)問(wèn)用戶(hù)的家目錄前嘗試獲取一個(gè)AFS token,并嘗試傳送 AFS token 給 Server 端,默認(rèn)為no####3.4、與 GSSAPI 有關(guān)的參數(shù)設(shè)定,指定是否允許基于GSSAPI的用戶(hù)認(rèn)證,僅適用于SSH2#### ##GSSAPI 是一套類(lèi)似 Kerberos 5 的通用網(wǎng)絡(luò)安全系統(tǒng)接口。 ###如果你擁有一套 GSSAPI庫(kù),就可以通過(guò) tcp 連接直接建立 cvs 連接,由 GSSAPI 進(jìn)行安全鑒別。# GSSAPI options #GSSAPIAuthentication no ##GSSAPIAuthentication 指定是否允許基于GSSAPI的用戶(hù)認(rèn)證,默認(rèn)為noGSSAPIAuthentication yes #GSSAPICleanupCredentials yes ##GSSAPICleanupCredentials 設(shè)置是否在用戶(hù)退出登錄是自動(dòng)銷(xiāo)毀用戶(hù)的憑證緩存 GSSAPICleanupCredentials yes# Set this to 'yes' to enable PAM authentication, account processing, # and session processing. If this is enabled, PAM authentication will # be allowed through the ChallengeResponseAuthentication mechanism. # Depending on your PAM configuration, this may bypass the setting of # PasswordAuthentication, PermitEmptyPasswords, and # "PermitRootLogin without-password". If you just want the PAM account and # session checks to run without PAM authentication, then enable this but set # ChallengeResponseAuthentication=no #UsePAM no ##設(shè)置是否通過(guò)PAM驗(yàn)證 UsePAM yes# Accept locale-related environment variables ##AcceptEnv 指定客戶(hù)端發(fā)送的哪些環(huán)境變量將會(huì)被傳遞到會(huì)話(huà)環(huán)境中。 ###[注意]只有SSH-2協(xié)議支持環(huán)境變量的傳遞。指令的值是空格分隔的變量名列表(其中可以使用'*'和'?'作為通配符)。 ####也可以使用多個(gè) AcceptEnv 達(dá)到同樣的目的。需要注意的是,有些環(huán)境變量可能會(huì)被用于繞過(guò)禁止用戶(hù)使用的環(huán)境變量。 #####由于這個(gè)原因,該指令應(yīng)當(dāng)小心使用。默認(rèn)是不傳遞任何環(huán)境變量。AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT AcceptEnv LC_IDENTIFICATION LC_ALL AllowTcpForwarding yes##AllowTcpForwarding設(shè)置是否允許允許tcp端口轉(zhuǎn)發(fā),保護(hù)其他的tcp連接#GatewayPorts no ##GatewayPorts 設(shè)置是否允許遠(yuǎn)程客戶(hù)端使用本地主機(jī)的端口轉(zhuǎn)發(fā)功能,出于安全考慮,建議禁止#############3.5、X-Window下使用的相關(guān)設(shè)定################X11Forwarding no ##X11Forwarding 用來(lái)設(shè)置是否允許X11轉(zhuǎn)發(fā) X11Forwarding yes#X11DisplayOffset 10 ##指定X11 轉(zhuǎn)發(fā)的第一個(gè)可用的顯示區(qū)(display)數(shù)字。默認(rèn)值是 10 。 ###可以用于防止 sshd 占用了真實(shí)的 X11 服務(wù)器顯示區(qū),從而發(fā)生混淆。 X11DisplayOffset 10#X11UseLocalhost yes#################3.6、登入后的相關(guān)設(shè)定##################PrintMotd yes ##PrintMotd用來(lái)設(shè)置sshd是否在用戶(hù)登錄時(shí)顯示“/etc/motd”中的信息,可以選在在“/etc/motd”中加入警告的信息#PrintLastLog yes #PrintLastLog 是否顯示上次登錄信息#TCPKeepAlive yes ##TCPKeepAlive 是否持續(xù)連接,設(shè)置yes可以防止死連接 ###一般而言,如果設(shè)定這項(xiàng)目的話(huà),那么 SSH Server 會(huì)傳送 KeepAlive 的訊息給 Client 端,以確保兩者的聯(lián)機(jī)正常! ####這種消息可以檢測(cè)到死連接、連接不當(dāng)關(guān)閉、客戶(hù)端崩潰等異常。在這個(gè)情況下,任何一端死掉后, SSH 可以立刻知道,而不會(huì)有僵尸程序的發(fā)生!#UseLogin no ##UseLogin 設(shè)置是否在交互式會(huì)話(huà)的登錄過(guò)程中使用。默認(rèn)值是"no"。 ###如果開(kāi)啟此指令,那么X11Forwarding 將會(huì)被禁止,因?yàn)閘ogin不知道如何處理 xauth cookies 。 ####需要注意的是,在SSH底下本來(lái)就不接受 login 這個(gè)程序的登入,如果指UsePrivilegeSeparation ,那么它將在認(rèn)證完成后被禁用。 UserLogin no       #UsePrivilegeSeparation yes ##UsePrivilegeSeparation 設(shè)置使用者的權(quán)限 #PermitUserEnvironment no #Compression delayed #ClientAliveInterval 0 #ClientAliveCountMax 3 #ShowPatchLevel no#UseDNS yes ##UseDNS是否使用dns反向解析#PidFile /var/run/sshd.pid#MaxStartups 10 ##MaxStartups 設(shè)置同時(shí)允許幾個(gè)尚未登入的聯(lián)機(jī),當(dāng)用戶(hù)連上ssh但并未輸入密碼即為所謂的聯(lián)機(jī), ###在這個(gè)聯(lián)機(jī)中,為了保護(hù)主機(jī),所以需要設(shè)置最大值,預(yù)設(shè)為10個(gè),而已經(jīng)建立聯(lián)機(jī)的不計(jì)算入內(nèi), ####所以一般5個(gè)即可,這個(gè)設(shè)置可以防止惡意對(duì)服務(wù)器進(jìn)行連接#MaxAuthTries 6 ##MaxAuthTries 用來(lái)設(shè)置最大失敗嘗試登陸次數(shù)為6,合理設(shè)置辭職,可以防止攻擊者窮舉登錄服務(wù)器 #PermitTunnel no############3.7、開(kāi)放禁止用戶(hù)設(shè)定#############AllowUsers<用戶(hù)名1> <用戶(hù)名2> <用戶(hù)名3> ... ##指定允許通過(guò)遠(yuǎn)程訪(fǎng)問(wèn)的用戶(hù),多個(gè)用戶(hù)以空格隔開(kāi)#AllowGroups<組名1> <組名2> <組名3> ... ##指定允許通過(guò)遠(yuǎn)程訪(fǎng)問(wèn)的組,多個(gè)組以空格隔開(kāi)。當(dāng)多個(gè)用戶(hù)需要通過(guò)ssh登錄系統(tǒng)時(shí),可將所有用戶(hù)加入一個(gè)組中。#DenyUsers<用戶(hù)名1> <用戶(hù)名2> <用戶(hù)名3> ... ##指定禁止通過(guò)遠(yuǎn)程訪(fǎng)問(wèn)的用戶(hù),多個(gè)用戶(hù)以空格隔開(kāi)#DenyGroups<組名1> <組名2> <組名3> ... ##指定禁止通過(guò)遠(yuǎn)程訪(fǎng)問(wèn)的組,多個(gè)組以空格隔開(kāi)。# no default banner path #Banner /some/path# override default of no subsystems Subsystem sftp /usr/libexec/openssh/sftp-server ClientAliveInterval 3600 ClientAliveCountMax 0

6.SFTP是什么

SFTP是Secure FileTransferProtocol的縮寫(xiě),安全文件傳送協(xié)議。

SFTP和FTP是兩種協(xié)議,它們是不同的,sftp是ssh內(nèi)含的協(xié)議,只要sshd服務(wù)器啟動(dòng)了,它就可用,它本身沒(méi)有單獨(dú)的守護(hù)進(jìn)程,更不需要ftp服務(wù)器啟動(dòng)。

SFTP同樣是使用加密傳輸認(rèn)證信息和傳輸?shù)臄?shù)據(jù),所以,使用SFTP是非常安全的。但是,由于這種傳輸方式使用了加密/解密技術(shù),所以傳輸效率比普通的FTP要低得多,如果您對(duì)網(wǎng)絡(luò)安全性要求更高時(shí),可以使用SFTP代替FTP。

7.SFTP登陸

使用sftp登陸遠(yuǎn)程服務(wù)器,可以

sftp root@192.168.0.1

也可以指定端口號(hào)

sftp -oPort=22 root@192.168.0.1

8.使用SFTP進(jìn)行文件上傳下載

下載

語(yǔ)法

get [-afPpRr] remote [local]

下載遠(yuǎn)程文件到本地目錄

get /tmp/test.c ~/

下載遠(yuǎn)程文件夾到本地目錄

get -r /tmp/test.c ~/

上傳

語(yǔ)法

put [-afPpRr] local [remote]

上傳本地文件到遠(yuǎn)程文件夾

put ~/test.c /tmp/

上傳本地文件夾到遠(yuǎn)程目錄(會(huì)上傳本地文件夾下的所有文件)

put ~/test /tmp/

9.更多SFTP命令

輸入 help 或 ? 命令可以查看sftp支持的命令操作:

sftp> help Available commands: bye 退出sftp exit 退出sftp quit 退出sftp cd path 將遠(yuǎn)程目錄更改為'path' chgrp grp path 將文件'path'的組更改為'grp' chmod mode path 將文件'path'的權(quán)限更改為'mode' chown own path 將文件'path'的所有者更改為'own' df [-hi] [path] 顯示當(dāng)前目錄的統(tǒng)計(jì)信息或包含'path'的文件系統(tǒng) get [-afPpRr] remote [local] 下載文件 reget [-fPpRr] remote [local] 恢復(fù)下載文件 reput [-fPpRr] [local] remote 恢復(fù)上傳文件 help 顯示此幫助文本 lcd path 將本地目錄更改為'path' lls [ls-options [path]] 顯示本地目錄列表 lmkdir path 創(chuàng)建本地目錄 ln [-s] oldpath newpath 鏈接遠(yuǎn)程文件(-s用于符號(hào)鏈接) lpwd 打印本地工作目錄 ls [-1afhlnrSt] [path] 顯示遠(yuǎn)程目錄列表 lumask umask 將本地umask設(shè)置為'umask' mkdir path 創(chuàng)建遠(yuǎn)程目錄 progress 切換進(jìn)度表的顯示 put [-afPpRr] local [remote] 上傳文件 pwd 顯示遠(yuǎn)程工作目錄 rename oldpath newpath 重命名遠(yuǎn)程文件 rm path 刪除遠(yuǎn)程文件 rmdir path 刪除遠(yuǎn)程目錄 symlink oldpath newpath 符號(hào)鏈接遠(yuǎn)程文件 version 顯示SFTP版本 !command 在本地shell中執(zhí)行'command' ! 轉(zhuǎn)到本地shell,輸入exit可退出并返回到sftp ? 顯示此幫助文本

執(zhí)行本地命令

如果我們想在進(jìn)入sftp會(huì)話(huà)環(huán)境下執(zhí)行本地命令怎么辦?只需要在本地命令之前加嘆號(hào)!即可,示例如下:

!ls

當(dāng)然,你可以輸入 ! 命令轉(zhuǎn)為本地shell會(huì)話(huà),退出本地會(huì)話(huà)輸入 exit 即可返回到原sftp會(huì)話(huà)。

刪除文件和目錄

刪除遠(yuǎn)程文件

rm path

刪除遠(yuǎn)程目錄(rmdir只能刪除空目錄)

rmdir path

注意:不可以設(shè)置參數(shù),如 -rf。

退出會(huì)話(huà)

無(wú)論是在 ssh 還是 sftp,都可以使用 exit 退出當(dāng)前會(huì)話(huà),sftp 還可以使用 quit 、bye 命令退出。

10.結(jié)語(yǔ)

相信本文足以可以讓你解決使用終端過(guò)程中碰到的絕大多數(shù)問(wèn)題了。

我是薛勤,咱們下期見(jiàn)!關(guān)注我,帶你領(lǐng)略更多編程技能!

參考:https://www.cnblogs.com/ftl1012/p/ssh.html

轉(zhuǎn)載于:https://www.cnblogs.com/yueshutong/p/11166377.html

總結(jié)

以上是生活随笔為你收集整理的使用SSH+SFTP操作终端全解析,告别XShell的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。